|
@@ -0,0 +1,56 @@
|
|
|
|
|
+import { sleep, check, group } from 'k6';
|
|
|
|
|
+import { createBasicAuthClient } from './modules/client.js';
|
|
|
|
|
+
|
|
|
|
|
+export let options = {
|
|
|
|
|
+ noCookiesReset: true
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+let endpoint = __ENV.URL || 'http://localhost:10080/grafana';
|
|
|
|
|
+const client = createBasicAuthClient(endpoint, 'user1', 'grafana');
|
|
|
|
|
+client.withOrgId(1);
|
|
|
|
|
+
|
|
|
|
|
+export const setup = () => {
|
|
|
|
|
+ const adminClient = createBasicAuthClient(endpoint, 'admin', 'admin');
|
|
|
|
|
+ let res = adminClient.datasources.getByName('gdev-prometheus');
|
|
|
|
|
+ if (res.status !== 200) {
|
|
|
|
|
+ throw new Error('Expected 200 response status when creating datasource');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return {
|
|
|
|
|
+ datasourceId: res.json().id,
|
|
|
|
|
+ };
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+export default (data) => {
|
|
|
|
|
+ group("auth proxy test", () => {
|
|
|
|
|
+ group("batch proxy requests", () => {
|
|
|
|
|
+ const d = new Date();
|
|
|
|
|
+ const batchCount = 300;
|
|
|
|
|
+ const requests = [];
|
|
|
|
|
+ const query = encodeURI('topk(5, max(scrape_duration_seconds) by (job))');
|
|
|
|
|
+ const start = (d.getTime() / 1000) - 3600;
|
|
|
|
|
+ const end = (d.getTime() / 1000);
|
|
|
|
|
+ const step = 20;
|
|
|
|
|
+
|
|
|
|
|
+ requests.push({ method: 'GET', url: '/api/annotations?dashboardId=8&from=1558670300607&to=1558691900607' });
|
|
|
|
|
+
|
|
|
|
|
+ for (let n = 0; n < batchCount; n++) {
|
|
|
|
|
+ requests.push({
|
|
|
|
|
+ method: 'GET',
|
|
|
|
|
+ url: `/api/datasources/proxy/${data.datasourceId}/api/v1/query_range?query=${query}&start=${start}&end=${end}&step=${step}`,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ let responses = client.batch(requests);
|
|
|
|
|
+ for (let n = 0; n < batchCount; n++) {
|
|
|
|
|
+ check(responses[n], {
|
|
|
|
|
+ 'response status is 200': (r) => r.status === 200,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ sleep(5)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+export const teardown = (data) => {}
|