k6-perf-reporter 1.7.5 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/.claude/settings.local.json +64 -1
  2. package/.config.example.json +15 -0
  3. package/dist/cli.js +10 -1
  4. package/dist/cli.js.map +1 -1
  5. package/dist/config.d.ts +13 -1
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +24 -2
  8. package/dist/config.js.map +1 -1
  9. package/dist/data-collector.d.ts.map +1 -1
  10. package/dist/data-collector.js +12 -23
  11. package/dist/data-collector.js.map +1 -1
  12. package/dist/datasources/datasource.d.ts +9 -3
  13. package/dist/datasources/datasource.d.ts.map +1 -1
  14. package/dist/datasources/factory.d.ts.map +1 -1
  15. package/dist/datasources/factory.js +5 -0
  16. package/dist/datasources/factory.js.map +1 -1
  17. package/dist/datasources/influx/influx-datasource.d.ts +11 -3
  18. package/dist/datasources/influx/influx-datasource.d.ts.map +1 -1
  19. package/dist/datasources/influx/influx-datasource.js +49 -10
  20. package/dist/datasources/influx/influx-datasource.js.map +1 -1
  21. package/dist/datasources/victoriametrics/index.d.ts +3 -0
  22. package/dist/datasources/victoriametrics/index.d.ts.map +1 -0
  23. package/dist/datasources/victoriametrics/index.js +8 -0
  24. package/dist/datasources/victoriametrics/index.js.map +1 -0
  25. package/dist/datasources/victoriametrics/vm-client.d.ts +17 -0
  26. package/dist/datasources/victoriametrics/vm-client.d.ts.map +1 -0
  27. package/dist/datasources/victoriametrics/vm-client.js +58 -0
  28. package/dist/datasources/victoriametrics/vm-client.js.map +1 -0
  29. package/dist/datasources/victoriametrics/vm-datasource.d.ts +34 -0
  30. package/dist/datasources/victoriametrics/vm-datasource.d.ts.map +1 -0
  31. package/dist/datasources/victoriametrics/vm-datasource.js +411 -0
  32. package/dist/datasources/victoriametrics/vm-datasource.js.map +1 -0
  33. package/dist/reporters/cli-reporter.d.ts.map +1 -1
  34. package/dist/reporters/cli-reporter.js +6 -0
  35. package/dist/reporters/cli-reporter.js.map +1 -1
  36. package/dist/reporters/markdown-reporter.d.ts.map +1 -1
  37. package/dist/reporters/markdown-reporter.js +8 -1
  38. package/dist/reporters/markdown-reporter.js.map +1 -1
  39. package/dist/reporters/slack-reporter.js +1 -1
  40. package/dist/reporters/slack-reporter.js.map +1 -1
  41. package/dist/types/metrics.d.ts +2 -0
  42. package/dist/types/metrics.d.ts.map +1 -1
  43. package/package.json +3 -2
  44. package/src/cli.ts +12 -1
  45. package/src/config.ts +48 -3
  46. package/src/data-collector.ts +21 -38
  47. package/src/datasources/datasource.ts +16 -4
  48. package/src/datasources/factory.ts +5 -0
  49. package/src/datasources/influx/influx-datasource.ts +85 -59
  50. package/src/datasources/victoriametrics/index.ts +2 -0
  51. package/src/datasources/victoriametrics/vm-client.ts +92 -0
  52. package/src/datasources/victoriametrics/vm-datasource.ts +547 -0
  53. package/src/reporters/cli-reporter.ts +6 -0
  54. package/src/reporters/markdown-reporter.ts +8 -1
  55. package/src/reporters/slack-reporter.ts +1 -1
  56. package/src/types/metrics.ts +2 -0
@@ -12,7 +12,70 @@
12
12
  "Bash(git commit *)",
13
13
  "Bash(git pull *)",
14
14
  "Bash(git stash *)",
15
- "Bash(wc *)"
15
+ "Bash(wc *)",
16
+ "mcp__ide__executeCode",
17
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/api/v1/label/__name__/values')",
18
+ "Bash(python3 -m json.tool)",
19
+ "Bash(curl -sv 'https://victoria.cmn.monoecom.tech/api/v1/label/__name__/values')",
20
+ "Bash(curl -s -o /dev/null -w \"%{http_code}\" 'https://victoria.cmn.monoecom.tech/')",
21
+ "Bash(curl -s -o /dev/null -w \"%{http_code}\" 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/label/__name__/values')",
22
+ "Bash(curl -s -o /dev/null -w \"%{http_code}\" 'https://victoria.cmn.monoecom.tech/vmselect/prometheus/api/v1/label/__name__/values')",
23
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/label/__name__/values')",
24
+ "Bash(python3 -c \"import sys,json; data=json.load\\(sys.stdin\\); [print\\(v\\) for v in data['data'] if 'k6' in v.lower\\(\\)]\")",
25
+ "Bash(python3 -c \"import sys,json; data=json.load\\(sys.stdin\\); print\\(data['status']\\); vals=data.get\\('data',[]\\); print\\(f'{len\\(vals\\)} metrics total'\\); [print\\(v\\) for v in vals[:20]]\")",
26
+ "Bash(python3 -c ' *)",
27
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/label/runId/values')",
28
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/series?match[]=k6_http_reqs_total')",
29
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query?query=k6_http_req_duration_p95')",
30
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query?query=k6_http_req_duration_p95%7BrunId%3D%22vmtest%22%7D&time=now')",
31
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/series?match[]=k6_error_responses_total')",
32
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query?query=k6_http_req_duration_p95%7BrunId%3D%22vmtest%22%7D&time=2026-07-01T00:00:00Z')",
33
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query_range?query=sum\\(k6_http_reqs_total%7BrunId%3D%22vmtest%22%7D\\)&start=2026-01-01T00:00:00Z&end=2026-07-10T00:00:00Z&step=86400')",
34
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query?query=k6_http_reqs_total%7BrunId%3D%22vmtest%22%7D')",
35
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query?query=k6_http_reqs_total')",
36
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query_range?query=sum\\(k6_http_reqs_total%7BrunId%3D%221147507%22%7D\\)&start=2026-06-01T00:00:00Z&end=2026-07-10T00:00:00Z&step=3600')",
37
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query_range?query=sum\\(k6_http_reqs_total%7BrunId%3D%221147507%22%7D\\)&start=2026-07-01T00:00:00Z&end=2026-07-10T23:59:59Z&step=60')",
38
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query?query=k6_http_req_duration_p95%7BrunId%3D%221147507%22%7D&time=2026-07-09T19:00:00Z')",
39
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query?query=k6_iteration_duration_p95%7BrunId%3D%221147507%22%7D&time=2026-07-09T19:00:00Z')",
40
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query?query=k6_http_req_duration_min%7BrunId%3D%221147507%22%7D&time=2026-07-09T19:00:00Z')",
41
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query?query=k6_iteration_duration_min%7BrunId%3D%221147507%22%7D&time=2026-07-09T19:00:00Z')",
42
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query?query=k6_checks_rate%7BrunId%3D%221147507%22%7D&time=2026-07-09T19:00:00Z')",
43
+ "Bash(curl -s 'https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query?query=k6_vus%7BrunId%3D%221147507%22%7D&time=2026-07-09T19:00:00Z')",
44
+ "Bash(npx tsx *)",
45
+ "Bash(python3 *)",
46
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query --data-urlencode 'query=avg by\\(name,method,status\\)\\(k6_http_req_duration_p95{runId=\"1147507\"}\\)' --data-urlencode time=2026-07-09T19:00:00Z)",
47
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query --data-urlencode 'query=increase\\(k6_error_responses_total{runId=\"vmtest\"}[7200s]\\)' --data-urlencode time=2026-07-09T20:00:00Z)",
48
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query --data-urlencode 'query=increase\\(k6_error_responses_total{runId=\"vmtest\"}[7200s]\\)' --data-urlencode time=2026-07-09T19:10:00Z)",
49
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query --data-urlencode 'query=increase\\(k6_error_responses_total{runId=\"1147507\"}[7200s]\\)' --data-urlencode time=2026-07-09T20:00:00Z)",
50
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query_range --data-urlencode 'query=sum\\(k6_error_responses_total\\)' --data-urlencode start=2026-07-01T00:00:00Z --data-urlencode end=2026-07-10T00:00:00Z --data-urlencode step=3600)",
51
+ "Bash(node *)",
52
+ "Bash(LOG_LEVEL=debug tsx src/cli.ts generate --run-id '1011202689' -d victoriametrics -st '-5h' --format cli)",
53
+ "Bash(LOG_LEVEL=debug npx tsx src/cli.ts generate --run-id '1011202689' -d victoriametrics -st '-5h' --format cli)",
54
+ "Bash(curl -s \"https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/label/__name__/values\")",
55
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query --data-urlencode 'query=k6_http_req_duration_p95{runId=\"1011202689\"}' --data-urlencode time=__CMDSUB_OUTPUT__)",
56
+ "Bash(date -jf \"%Y-%m-%dT%H:%M:%S\" \"2026-07-10T08:21:22\" \"+%s\")",
57
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query --data-urlencode 'query=last_over_time\\(k6_http_req_duration_p95{runId=\"1011202689\"}[24h]\\)' --data-urlencode time=1783660882)",
58
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query --data-urlencode 'query=k6_http_reqs_total{runId=\"1011202689\"}' --data-urlencode time=1783660882)",
59
+ "Bash(VM_TREND_AS_NATIVE_HISTOGRAM=true npm run report:example:vm)",
60
+ "Bash(LOG_LEVEL=debug VM_TREND_AS_NATIVE_HISTOGRAM=true npx tsx src/cli.ts generate --run-id '1011202689' -d victoriametrics -st '-5h' --format cli)",
61
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query --data-urlencode 'query=sum\\(increase\\(k6_http_req_duration_bucket{runId=\"1011202689\"}[18000s]\\)\\) by \\(le\\)' --data-urlencode time=1783660882)",
62
+ "Bash(LOG_LEVEL=debug VM_TREND_AS_NATIVE_HISTOGRAM=true VM_TREND_UNIT_SUFFIX=_seconds npx tsx src/cli.ts generate --run-id '1011202689' -d victoriametrics -st '-5h' --format cli)",
63
+ "Bash(VM_TREND_AS_NATIVE_HISTOGRAM=true VM_TREND_UNIT_SUFFIX=_seconds npm run report:example:vm)",
64
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query --data-urlencode 'query=k6_http_req_duration_seconds_bucket{runId=\"1011202689\"}' --data-urlencode time=1783660882)",
65
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query --data-urlencode 'query=sum\\(increase\\(k6_http_req_duration_seconds_bucket{runId=\"1011202689\"}[18000s]\\)\\) by \\(le\\)' --data-urlencode time=__CMDSUB_OUTPUT__)",
66
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query --data-urlencode 'query=k6_http_req_duration_seconds_bucket{runId=\"1011202689\"}' --data-urlencode time=__CMDSUB_OUTPUT__)",
67
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query_range --data-urlencode 'query=k6_http_req_duration_seconds_bucket{runId=\"1011202689\"}' --data-urlencode start=1783658000 --data-urlencode end=1783661000 --data-urlencode step=60)",
68
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query --data-urlencode 'query=last_over_time\\(k6_http_req_duration_seconds_bucket{runId=\"1011202689\"}[18000s]\\)' --data-urlencode time=__CMDSUB_OUTPUT__)",
69
+ "Bash(curl -s https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query --data-urlencode 'query=sum\\(increase\\(k6_http_req_duration_seconds_sum{runId=\"1011202689\"}[18000s]\\)\\)' --data-urlencode time=__CMDSUB_OUTPUT__)",
70
+ "Bash(LOG_LEVEL=debug npm run report:example:vm)",
71
+ "Bash(curl -s \"http://localhost:8428/api/v1/label/__name__/values\")",
72
+ "WebSearch",
73
+ "WebFetch(domain:grafana.com)",
74
+ "Bash(curl -s \"https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query?query=k6_http_req_duration_avg%7BrunId%3D%2210112026891267%22%7D&time=now\")",
75
+ "Bash(curl -s \"https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/query?query=k6_http_req_duration_avg\")",
76
+ "Bash(curl -s \"https://victoria.cmn.monoecom.tech/select/0/prometheus/api/v1/label/runId/values\")",
77
+ "Bash(DATASOURCE=victoriametrics VM_URL=https://victoria.cmn.monoecom.tech/select/0/prometheus LOG_LEVEL=info npx tsx src/cli.ts generate --run-id '10112026891267' -st '-30d' --report cli --no-cache)",
78
+ "Bash(grep -E '\\\\.\\(ts|js|json|html\\)$')"
16
79
  ]
17
80
  }
18
81
  }
@@ -1,15 +1,30 @@
1
1
  {
2
+ "_comment_datasource": "Supported values: influxdb (default), victoriametrics, prometheus",
3
+ "dataSource": "influxdb",
4
+
5
+ "_comment_influx": "Used when dataSource = influxdb",
2
6
  "influx": {
3
7
  "url": "http://localhost:8086",
4
8
  "token": "${INFLUX_TOKEN}",
5
9
  "org": "my-org",
6
10
  "bucket": "k6"
7
11
  },
12
+
13
+ "_comment_vm": "Used when dataSource = victoriametrics",
14
+ "victoriametrics": {
15
+ "url": "http://localhost:8428",
16
+ "token": "${VM_TOKEN}"
17
+ },
18
+
8
19
  "slack": {
9
20
  "token": "${SLACK_TOKEN}",
10
21
  "channel": "#k6-reports"
11
22
  },
12
23
  "cache": {
13
24
  "ttl": 3600
25
+ },
26
+ "_comment_grafana": "Optional Grafana dashboard link included in reports (env: GRAFANA_DASHBOARD_URL)",
27
+ "grafana": {
28
+ "dashboardUrl": "https://grafana.example.com/d/abc123/k6-dashboard"
14
29
  }
15
30
  }
package/dist/cli.js CHANGED
@@ -49,7 +49,7 @@ function main() {
49
49
  commander_1.program
50
50
  .name("k6-reporter")
51
51
  .description("Generate CLI reports from k6 performance tests")
52
- .version("1.6.0");
52
+ .version("1.9.0");
53
53
  commander_1.program
54
54
  .command("generate")
55
55
  .description("Generate performance test report")
@@ -64,6 +64,7 @@ function main() {
64
64
  .option("--no-cache", "Disable cache, always fetch fresh data")
65
65
  .option("-p, --params <params...>", "Execution parameters as key=value pairs (e.g. --params env=prod branch=main)")
66
66
  .option("--ignore-status-codes <codes>", "Comma-separated HTTP status codes to exclude from error metrics (e.g. 404,401)")
67
+ .option("--triggered-by <user>", "User or system that triggered the pipeline (env: TRIGGERED_BY)")
67
68
  .action(async (options) => {
68
69
  try {
69
70
  if (options.report && options.format !== "cli") {
@@ -88,6 +89,14 @@ function main() {
88
89
  }
89
90
  report.params = params;
90
91
  }
92
+ const grafanaConfig = configInstance.getGrafanaConfig();
93
+ if (grafanaConfig) {
94
+ report.grafanaDashboardUrl = grafanaConfig.dashboardUrl;
95
+ }
96
+ const triggeredBy = options.triggeredBy || process.env["TRIGGERED_BY"];
97
+ if (triggeredBy) {
98
+ report.triggeredBy = triggeredBy;
99
+ }
91
100
  if (options.report) {
92
101
  const reporters = options.report.split(",").map((r) => r.trim());
93
102
  logger_1.logger.info(`generate: using --report with reporters=[${reporters.join(", ")}]`);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,10 +1,14 @@
1
- export type DataSourceType = "influxdb" | "prometheus";
1
+ export type DataSourceType = "influxdb" | "prometheus" | "victoriametrics";
2
2
  export interface InfluxConfig {
3
3
  url: string;
4
4
  token: string;
5
5
  org: string;
6
6
  bucket: string;
7
7
  }
8
+ export interface VictoriaMetricsConfig {
9
+ url: string;
10
+ token?: string;
11
+ }
8
12
  export interface SlackConfig {
9
13
  token: string;
10
14
  channel: string;
@@ -12,23 +16,31 @@ export interface SlackConfig {
12
16
  export interface CacheConfig {
13
17
  ttl: number;
14
18
  }
19
+ export interface GrafanaConfig {
20
+ dashboardUrl: string;
21
+ }
15
22
  export declare class Config {
16
23
  private static instance;
17
24
  private dataSourceType;
18
25
  private rawInflux;
26
+ private rawVictoriaMetrics;
19
27
  private slackConfig;
20
28
  private cacheConfig;
21
29
  private configPath;
22
30
  private ignoredStatusCodes;
31
+ private grafanaConfig;
23
32
  private constructor();
24
33
  private loadRawConfig;
25
34
  private parseDataSourceType;
26
35
  getInfluxConfig(): InfluxConfig;
36
+ getVictoriaMetricsConfig(): VictoriaMetricsConfig;
27
37
  private parseSlackConfig;
28
38
  private parseCacheConfig;
29
39
  private parseIgnoredStatusCodes;
40
+ private parseGrafanaConfig;
30
41
  private resolveValue;
31
42
  getIgnoredStatusCodes(): number[];
43
+ getGrafanaConfig(): GrafanaConfig | null;
32
44
  static getInstance(configPath?: string): Config;
33
45
  getDataSourceType(): DataSourceType;
34
46
  getSlackConfig(): SlackConfig | null;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,YAAY,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAUD,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAChC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAAW;IAErC,OAAO;IAUP,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,mBAAmB;IAS3B,eAAe,IAAI,YAAY;IAgB/B,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,YAAY;IAWpB,qBAAqB,IAAI,MAAM,EAAE;IAIjC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAO/C,iBAAiB,IAAI,cAAc;IAInC,cAAc,IAAI,WAAW,GAAG,IAAI;IAIpC,cAAc,IAAI,WAAW;CAG9B"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAE3E,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;CACtB;AAYD,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAChC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,kBAAkB,CAAsC;IAChE,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAAW;IACrC,OAAO,CAAC,aAAa,CAA8B;IAEnD,OAAO;IAYP,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,mBAAmB;IAS3B,eAAe,IAAI,YAAY;IAgB/B,wBAAwB,IAAI,qBAAqB;IAkBjD,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAWpB,qBAAqB,IAAI,MAAM,EAAE;IAIjC,gBAAgB,IAAI,aAAa,GAAG,IAAI;IAIxC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAO/C,iBAAiB,IAAI,cAAc;IAInC,cAAc,IAAI,WAAW,GAAG,IAAI;IAIpC,cAAc,IAAI,WAAW;CAG9B"}
package/dist/config.js CHANGED
@@ -9,13 +9,16 @@ const path_1 = __importDefault(require("path"));
9
9
  class Config {
10
10
  constructor(configPath) {
11
11
  this.slackConfig = null;
12
+ this.grafanaConfig = null;
12
13
  this.configPath = configPath || ".config.json";
13
14
  const rawConfig = this.loadRawConfig();
14
15
  this.dataSourceType = this.parseDataSourceType(rawConfig.dataSource);
15
16
  this.rawInflux = rawConfig.influx;
17
+ this.rawVictoriaMetrics = rawConfig.victoriametrics;
16
18
  this.slackConfig = this.parseSlackConfig(rawConfig.slack);
17
19
  this.cacheConfig = this.parseCacheConfig(rawConfig.cache);
18
20
  this.ignoredStatusCodes = this.parseIgnoredStatusCodes(rawConfig.ignoredStatusCodes);
21
+ this.grafanaConfig = this.parseGrafanaConfig(rawConfig.grafana);
19
22
  }
20
23
  loadRawConfig() {
21
24
  const fullPath = path_1.default.resolve(this.configPath);
@@ -33,8 +36,8 @@ class Config {
33
36
  parseDataSourceType(raw) {
34
37
  const envValue = process.env["DATASOURCE"];
35
38
  const value = envValue || raw || "influxdb";
36
- if (value !== "influxdb" && value !== "prometheus") {
37
- throw new Error(`Unknown datasource type: '${value}'. Supported: influxdb, prometheus`);
39
+ if (value !== "influxdb" && value !== "prometheus" && value !== "victoriametrics") {
40
+ throw new Error(`Unknown datasource type: '${value}'. Supported: influxdb, prometheus, victoriametrics`);
38
41
  }
39
42
  return value;
40
43
  }
@@ -49,6 +52,15 @@ class Config {
49
52
  }
50
53
  return { url, token, org, bucket };
51
54
  }
55
+ getVictoriaMetricsConfig() {
56
+ const url = this.resolveValue(this.rawVictoriaMetrics?.url, "VM_URL");
57
+ if (!url) {
58
+ throw new Error("VictoriaMetrics configuration is incomplete. " +
59
+ "Set VM_URL via environment variable or config file.");
60
+ }
61
+ const token = this.resolveValue(this.rawVictoriaMetrics?.token, "VM_TOKEN");
62
+ return { url, token: token ?? undefined };
63
+ }
52
64
  parseSlackConfig(rawConfig) {
53
65
  const token = this.resolveValue(rawConfig?.token, "SLACK_TOKEN");
54
66
  if (!token) {
@@ -83,6 +95,13 @@ class Config {
83
95
  }
84
96
  return [];
85
97
  }
98
+ parseGrafanaConfig(rawConfig) {
99
+ const dashboardUrl = this.resolveValue(rawConfig?.dashboardUrl, "GRAFANA_DASHBOARD_URL");
100
+ if (!dashboardUrl) {
101
+ return null;
102
+ }
103
+ return { dashboardUrl };
104
+ }
86
105
  resolveValue(configValue, envVar) {
87
106
  // First check environment variable (takes priority)
88
107
  const envValue = process.env[envVar];
@@ -95,6 +114,9 @@ class Config {
95
114
  getIgnoredStatusCodes() {
96
115
  return this.ignoredStatusCodes;
97
116
  }
117
+ getGrafanaConfig() {
118
+ return this.grafanaConfig;
119
+ }
98
120
  static getInstance(configPath) {
99
121
  if (!Config.instance) {
100
122
  Config.instance = new Config(configPath);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-collector.d.ts","sourceRoot":"","sources":["../src/data-collector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAe3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAe;gBAEhB,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM;IAKrD,OAAO,CAAC,aAAa;IAQf,OAAO,CACX,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,MAAc,EACzB,OAAO,GAAE,MAAgB,EACzB,IAAI,GAAE,OAAY,EAClB,kBAAkB,GAAE,MAAM,EAAO,GAChC,OAAO,CAAC,gBAAgB,CAAC;CAsG7B"}
1
+ {"version":3,"file":"data-collector.d.ts","sourceRoot":"","sources":["../src/data-collector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAK3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAe;gBAEhB,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM;IAKrD,OAAO,CAAC,aAAa;IAQf,OAAO,CACX,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,MAAc,EACzB,OAAO,GAAE,MAAgB,EACzB,IAAI,GAAE,OAAY,EAClB,kBAAkB,GAAE,MAAM,EAAO,GAChC,OAAO,CAAC,gBAAgB,CAAC;CA+F7B"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DataCollector = void 0;
4
- const metrics_1 = require("./metrics");
5
4
  const loader_1 = require("./loader");
6
5
  const cache_1 = require("./cache");
7
6
  const logger_1 = require("./logger");
@@ -30,13 +29,10 @@ class DataCollector {
30
29
  }
31
30
  logger_1.logger.debug("DataCollector.collect: cache miss, fetching from datasource");
32
31
  }
33
- // Phase 1: Parallel bulk fetch — all independent queries at once
34
32
  this.loader.start("Fetching all data in parallel...");
35
33
  const fetchStart = Date.now();
36
- logger_1.logger.info("DataCollector.collect: starting parallel data fetch (9 queries)");
37
- const [httpReqsData, httpReqDurationData, duration, vus, vusMax, iterations, checks, iterationDuration, errorResponsesText,] = await Promise.all([
38
- this.dataSource.fetchHttpReqsData(runId, startTime, endTime),
39
- this.dataSource.fetchHttpReqDurationData(runId, startTime, endTime),
34
+ logger_1.logger.info("DataCollector.collect: starting parallel data fetch");
35
+ const [duration, vus, vusMax, iterations, checks, iterationDuration, errorResponsesText, httpReqs, httpReqFailed, httpReqDuration, httpReqDurationSuccess, errorResponses, errorRequests, requests, rpsAggregated,] = await Promise.all([
40
36
  this.dataSource.calculateTestDuration(runId, startTime, endTime),
41
37
  this.dataSource.extractVus(runId, startTime, endTime),
42
38
  this.dataSource.extractVusMax(runId, startTime, endTime),
@@ -44,29 +40,22 @@ class DataCollector {
44
40
  this.dataSource.extractChecks(runId, startTime, endTime),
45
41
  this.dataSource.extractIterationDuration(runId, startTime, endTime),
46
42
  this.dataSource.extractErrorResponsesText(runId, startTime, endTime),
43
+ this.dataSource.extractHttpReqs(runId, startTime, endTime, ignoredStatusCodes),
44
+ this.dataSource.extractHttpReqFailed(runId, startTime, endTime, ignoredStatusCodes),
45
+ this.dataSource.extractHttpReqDuration(runId, startTime, endTime),
46
+ this.dataSource.extractHttpReqDurationSuccess(runId, startTime, endTime),
47
+ this.dataSource.extractErrorResponses(runId, startTime, endTime, ignoredStatusCodes),
48
+ this.dataSource.extractErrorRequests(runId, startTime, endTime, ignoredStatusCodes),
49
+ this.dataSource.extractRequests(runId, startTime, endTime),
50
+ this.dataSource.extractRpsAggregated(runId, startTime, endTime),
47
51
  ]);
48
52
  const fetchElapsed = Date.now() - fetchStart;
49
53
  logger_1.logger.info(`DataCollector.collect: parallel fetch completed in ${fetchElapsed}ms`);
50
- logger_1.logger.debug(`DataCollector.collect: fetched rows — httpReqs=${httpReqsData.length}, httpReqDuration=${httpReqDurationData.length}, ` +
51
- `errorResponsesText=${errorResponsesText.responses.length}`);
52
54
  this.loader.success(`Data fetching finished in ${this.formatElapsed(fetchElapsed)}`);
53
- // Phase 2: Derive metrics from cached data (no additional queries)
54
- this.loader.start("Computing metrics...");
55
- logger_1.logger.info("DataCollector.collect: computing derived metrics");
56
- // Update iterations with duration info
57
- if (iterations.total > 0 && duration.durationSeconds > 0) {
55
+ // Update iterations rate using authoritative duration if not already set
56
+ if (iterations.total > 0 && duration.durationSeconds > 0 && iterations.rate === 0) {
58
57
  iterations.rate = iterations.total / duration.durationSeconds;
59
58
  }
60
- const httpReqs = (0, metrics_1.extractHttpReqsFromData)(httpReqsData, duration);
61
- const httpReqFailed = (0, metrics_1.extractHttpReqFailedFromData)(httpReqsData, ignoredStatusCodes);
62
- const httpReqDuration = (0, metrics_1.extractHttpReqDurationFromData)(httpReqDurationData);
63
- const httpReqDurationSuccess = (0, metrics_1.extractHttpReqDurationSuccessFromData)(httpReqDurationData);
64
- const errorResponses = (0, metrics_1.extractErrorResponsesFromData)(httpReqsData, duration, ignoredStatusCodes);
65
- const errorRequests = (0, metrics_1.extractErrorRequestsFromData)(httpReqsData, httpReqDurationData, ignoredStatusCodes);
66
- const requests = (0, metrics_1.extractRequestsFromData)(httpReqsData, httpReqDurationData);
67
- const rpsAggregated = (0, metrics_1.extractRpsAggregatedFromData)(httpReqsData);
68
- logger_1.logger.info("DataCollector.collect: all metrics computed");
69
- this.loader.success("Computed all metrics");
70
59
  const reportData = {
71
60
  ...(typeof data === "object" && data !== null ? data : {}),
72
61
  httpReqs,
@@ -1 +1 @@
1
- {"version":3,"file":"data-collector.js","sourceRoot":"","sources":["../src/data-collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-collector.js","sourceRoot":"","sources":["../src/data-collector.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
- import { HttpReqsRow, HttpReqDurationRow, DurationMetric, VusMetric, VusMaxMetric, IterationsMetric, ChecksMetric, IterationDurationMetric, ErrorResponsesTextMetric } from "../types";
1
+ import { DurationMetric, VusMetric, VusMaxMetric, IterationsMetric, ChecksMetric, IterationDurationMetric, ErrorResponsesTextMetric, HttpReqsMetric, HttpReqFailedMetric, HttpReqDurationMetric, HttpReqDurationSuccessMetric, ErrorResponsesMetric, ErrorRequestsMetric, RequestsMetric, RpsAggregatedMetric } from "../types";
2
2
  export interface DataSource {
3
- fetchHttpReqsData(runId: string, startTime: string, endTime: string): Promise<HttpReqsRow[]>;
4
- fetchHttpReqDurationData(runId: string, startTime: string, endTime: string): Promise<HttpReqDurationRow[]>;
5
3
  calculateTestDuration(runId: string, startTime: string, endTime: string): Promise<DurationMetric>;
6
4
  extractVus(runId: string, startTime: string, endTime: string): Promise<VusMetric>;
7
5
  extractVusMax(runId: string, startTime: string, endTime: string): Promise<VusMaxMetric>;
@@ -9,5 +7,13 @@ export interface DataSource {
9
7
  extractChecks(runId: string, startTime: string, endTime: string): Promise<ChecksMetric>;
10
8
  extractIterationDuration(runId: string, startTime: string, endTime: string): Promise<IterationDurationMetric>;
11
9
  extractErrorResponsesText(runId: string, startTime: string, endTime: string): Promise<ErrorResponsesTextMetric>;
10
+ extractHttpReqs(runId: string, startTime: string, endTime: string, ignoredStatusCodes: number[]): Promise<HttpReqsMetric>;
11
+ extractHttpReqFailed(runId: string, startTime: string, endTime: string, ignoredStatusCodes: number[]): Promise<HttpReqFailedMetric>;
12
+ extractHttpReqDuration(runId: string, startTime: string, endTime: string): Promise<HttpReqDurationMetric>;
13
+ extractHttpReqDurationSuccess(runId: string, startTime: string, endTime: string): Promise<HttpReqDurationSuccessMetric>;
14
+ extractErrorResponses(runId: string, startTime: string, endTime: string, ignoredStatusCodes: number[]): Promise<ErrorResponsesMetric>;
15
+ extractErrorRequests(runId: string, startTime: string, endTime: string, ignoredStatusCodes: number[]): Promise<ErrorRequestsMetric>;
16
+ extractRequests(runId: string, startTime: string, endTime: string): Promise<RequestsMetric>;
17
+ extractRpsAggregated(runId: string, startTime: string, endTime: string): Promise<RpsAggregatedMetric>;
12
18
  }
13
19
  //# sourceMappingURL=datasource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../src/datasources/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,UAAU;IACzB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7F,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC3G,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAClG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClF,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACxF,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACxF,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC9G,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACjH"}
1
+ {"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../src/datasources/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,wBAAwB,EACxB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,UAAU;IACzB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAClG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClF,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACxF,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACxF,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC9G,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAChH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1H,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACpI,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC1G,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACxH,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACtI,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACpI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5F,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACvG"}
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/datasources/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGnD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAYjF"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/datasources/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGnD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAgBjF"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createDataSource = createDataSource;
4
4
  const influx_1 = require("./influx");
5
+ const victoriametrics_1 = require("./victoriametrics");
5
6
  const logger_1 = require("../logger");
6
7
  function createDataSource(type, config) {
7
8
  logger_1.logger.info(`createDataSource: type=${type}`);
@@ -10,6 +11,10 @@ function createDataSource(type, config) {
10
11
  const influxConfig = config.getInfluxConfig();
11
12
  return new influx_1.InfluxDataSource(influxConfig);
12
13
  }
14
+ case "victoriametrics": {
15
+ const vmConfig = config.getVictoriaMetricsConfig();
16
+ return new victoriametrics_1.VictoriaMetricsDataSource(vmConfig);
17
+ }
13
18
  case "prometheus":
14
19
  throw new Error("Prometheus datasource is not yet implemented");
15
20
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/datasources/factory.ts"],"names":[],"mappings":";;AAKA,4CAYC;AAhBD,qCAA4C;AAE5C,sCAAmC;AAEnC,SAAgB,gBAAgB,CAAC,IAAoB,EAAE,MAAc;IACnE,eAAM,CAAC,IAAI,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;IAC9C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;YAC9C,OAAO,IAAI,yBAAgB,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;QACD,KAAK,YAAY;YACf,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE;YACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/datasources/factory.ts"],"names":[],"mappings":";;AAMA,4CAgBC;AArBD,qCAA4C;AAC5C,uDAA8D;AAE9D,sCAAmC;AAEnC,SAAgB,gBAAgB,CAAC,IAAoB,EAAE,MAAc;IACnE,eAAM,CAAC,IAAI,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;IAC9C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;YAC9C,OAAO,IAAI,yBAAgB,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,wBAAwB,EAAE,CAAC;YACnD,OAAO,IAAI,2CAAyB,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QACD,KAAK,YAAY;YACf,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE;YACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import { InfluxConfig } from "../../config";
2
2
  import { DataSource } from "../datasource";
3
- import { HttpReqsRow, HttpReqDurationRow, DurationMetric, VusMetric, VusMaxMetric, IterationsMetric, ChecksMetric, IterationDurationMetric, ErrorResponsesTextMetric } from "../../types";
3
+ import { DurationMetric, VusMetric, VusMaxMetric, IterationsMetric, ChecksMetric, IterationDurationMetric, ErrorResponsesTextMetric, HttpReqsMetric, HttpReqFailedMetric, HttpReqDurationMetric, HttpReqDurationSuccessMetric, ErrorResponsesMetric, ErrorRequestsMetric, RequestsMetric, RpsAggregatedMetric } from "../../types";
4
4
  export declare class InfluxDataSource implements DataSource {
5
5
  private client;
6
6
  private config;
7
7
  constructor(config: InfluxConfig);
8
- fetchHttpReqsData(runId: string, startTime: string, endTime: string): Promise<HttpReqsRow[]>;
9
- fetchHttpReqDurationData(runId: string, startTime: string, endTime: string): Promise<HttpReqDurationRow[]>;
8
+ private fetchHttpReqsData;
9
+ private fetchHttpReqDurationData;
10
10
  calculateTestDuration(runId: string, startTime: string, endTime: string): Promise<DurationMetric>;
11
11
  extractVus(runId: string, startTime: string, endTime: string): Promise<VusMetric>;
12
12
  extractVusMax(runId: string, startTime: string, endTime: string): Promise<VusMaxMetric>;
@@ -14,5 +14,13 @@ export declare class InfluxDataSource implements DataSource {
14
14
  extractChecks(runId: string, startTime: string, endTime: string): Promise<ChecksMetric>;
15
15
  extractIterationDuration(runId: string, startTime: string, endTime: string): Promise<IterationDurationMetric>;
16
16
  extractErrorResponsesText(runId: string, startTime: string, endTime: string): Promise<ErrorResponsesTextMetric>;
17
+ extractHttpReqs(runId: string, startTime: string, endTime: string, ignoredStatusCodes: number[]): Promise<HttpReqsMetric>;
18
+ extractHttpReqFailed(runId: string, startTime: string, endTime: string, ignoredStatusCodes: number[]): Promise<HttpReqFailedMetric>;
19
+ extractHttpReqDuration(runId: string, startTime: string, endTime: string): Promise<HttpReqDurationMetric>;
20
+ extractHttpReqDurationSuccess(runId: string, startTime: string, endTime: string): Promise<HttpReqDurationSuccessMetric>;
21
+ extractErrorResponses(runId: string, startTime: string, endTime: string, ignoredStatusCodes: number[]): Promise<ErrorResponsesMetric>;
22
+ extractErrorRequests(runId: string, startTime: string, endTime: string, ignoredStatusCodes: number[]): Promise<ErrorRequestsMetric>;
23
+ extractRequests(runId: string, startTime: string, endTime: string): Promise<RequestsMetric>;
24
+ extractRpsAggregated(runId: string, startTime: string, endTime: string): Promise<RpsAggregatedMetric>;
17
25
  }
18
26
  //# sourceMappingURL=influx-datasource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"influx-datasource.d.ts","sourceRoot":"","sources":["../../../src/datasources/influx/influx-datasource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,wBAAwB,EAEzB,MAAM,aAAa,CAAC;AAErB,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAK1B,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,EAAE,CAAC;IAwBnB,wBAAwB,CAC5B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAuB1B,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,CAAC;IAoDpB,UAAU,CACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC;IA0Bf,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC;IAyBlB,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC;IAuCtB,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC;IA2BlB,wBAAwB,CAC5B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,uBAAuB,CAAC;IAmC7B,yBAAyB,CAC7B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;CAwCrC"}
1
+ {"version":3,"file":"influx-datasource.d.ts","sourceRoot":"","sources":["../../../src/datasources/influx/influx-datasource.ts"],"names":[],"mappings":"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"}