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.
- package/.claude/settings.local.json +64 -1
- package/.config.example.json +15 -0
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +13 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +24 -2
- package/dist/config.js.map +1 -1
- package/dist/data-collector.d.ts.map +1 -1
- package/dist/data-collector.js +12 -23
- package/dist/data-collector.js.map +1 -1
- package/dist/datasources/datasource.d.ts +9 -3
- package/dist/datasources/datasource.d.ts.map +1 -1
- package/dist/datasources/factory.d.ts.map +1 -1
- package/dist/datasources/factory.js +5 -0
- package/dist/datasources/factory.js.map +1 -1
- package/dist/datasources/influx/influx-datasource.d.ts +11 -3
- package/dist/datasources/influx/influx-datasource.d.ts.map +1 -1
- package/dist/datasources/influx/influx-datasource.js +49 -10
- package/dist/datasources/influx/influx-datasource.js.map +1 -1
- package/dist/datasources/victoriametrics/index.d.ts +3 -0
- package/dist/datasources/victoriametrics/index.d.ts.map +1 -0
- package/dist/datasources/victoriametrics/index.js +8 -0
- package/dist/datasources/victoriametrics/index.js.map +1 -0
- package/dist/datasources/victoriametrics/vm-client.d.ts +17 -0
- package/dist/datasources/victoriametrics/vm-client.d.ts.map +1 -0
- package/dist/datasources/victoriametrics/vm-client.js +58 -0
- package/dist/datasources/victoriametrics/vm-client.js.map +1 -0
- package/dist/datasources/victoriametrics/vm-datasource.d.ts +34 -0
- package/dist/datasources/victoriametrics/vm-datasource.d.ts.map +1 -0
- package/dist/datasources/victoriametrics/vm-datasource.js +411 -0
- package/dist/datasources/victoriametrics/vm-datasource.js.map +1 -0
- package/dist/reporters/cli-reporter.d.ts.map +1 -1
- package/dist/reporters/cli-reporter.js +6 -0
- package/dist/reporters/cli-reporter.js.map +1 -1
- package/dist/reporters/markdown-reporter.d.ts.map +1 -1
- package/dist/reporters/markdown-reporter.js +8 -1
- package/dist/reporters/markdown-reporter.js.map +1 -1
- package/dist/reporters/slack-reporter.js +1 -1
- package/dist/reporters/slack-reporter.js.map +1 -1
- package/dist/types/metrics.d.ts +2 -0
- package/dist/types/metrics.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/cli.ts +12 -1
- package/src/config.ts +48 -3
- package/src/data-collector.ts +21 -38
- package/src/datasources/datasource.ts +16 -4
- package/src/datasources/factory.ts +5 -0
- package/src/datasources/influx/influx-datasource.ts +85 -59
- package/src/datasources/victoriametrics/index.ts +2 -0
- package/src/datasources/victoriametrics/vm-client.ts +92 -0
- package/src/datasources/victoriametrics/vm-datasource.ts +547 -0
- package/src/reporters/cli-reporter.ts +6 -0
- package/src/reporters/markdown-reporter.ts +8 -1
- package/src/reporters/slack-reporter.ts +1 -1
- 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
|
}
|
package/.config.example.json
CHANGED
|
@@ -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.
|
|
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":";;;AAEA,yCAAoC;AACpC,qCAAkD;AAClD,qDAAiD;AACjD,+CAAiD;AACjD,2CAAyF;AACzF,qCAAkC;AAGlC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AAGtE,SAAS,iBAAiB,CAAC,IAAkB,EAAE,KAAa;IAC1D,MAAM,UAAU,GAA0C;QACxD,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,IAAkB,EAClB,MAAwB,EACxB,OAA4B,EAC5B,cAAsB;IAEtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,eAAM,CAAC,IAAI,CAAC,kCAAkC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3F,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,IAAI,wBAAY,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1C,eAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAClD,MAAM;QACR,KAAK,UAAU;YACb,IAAI,4BAAgB,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9C,eAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACtD,MAAM;QACR,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;YACpD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAC;YACnH,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,yBAAa,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;YAChF,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,eAAM,CAAC,IAAI,CAAC,6CAA6C,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,MAAM;QACR,CAAC;QACD,KAAK,KAAK;YACR,IAAI,uBAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjC,eAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC/C,MAAM;IACV,CAAC;AACH,CAAC;AAED,SAAS,IAAI;IACX,mBAAO;SACJ,IAAI,CAAC,aAAa,CAAC;SACnB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,mBAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,cAAc,CAAC,eAAe,EAAE,gBAAgB,CAAC;SACjD,MAAM,CAAC,0BAA0B,EAAE,sDAAsD,CAAC;SAC1F,MAAM,CAAC,wBAAwB,EAAE,+CAA+C,CAAC;SACjF,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,cAAc,CAAC;SACpE,MAAM,CAAC,yBAAyB,EAAE,yCAAyC,CAAC;SAC5E,MAAM,CAAC,uBAAuB,EAAE,sDAAsD,EAAE,KAAK,CAAC;SAC9F,MAAM,CAAC,0BAA0B,EAAE,yEAAyE,CAAC;SAC7G,MAAM,CAAC,qBAAqB,EAAE,kDAAkD,CAAC;SACjF,MAAM,CAAC,YAAY,EAAE,wCAAwC,CAAC;SAC9D,MAAM,CAAC,0BAA0B,EAAE,8EAA8E,CAAC;SAClH,MAAM,CAAC,+BAA+B,EAAE,gFAAgF,CAAC;SACzH,MAAM,CAAC,uBAAuB,EAAE,gEAAgE,CAAC;SACjG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;YACrG,CAAC;YAED,MAAM,cAAc,GAAG,eAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,iBAAiB,EAAE,CAAmB,CAAC;YAC5F,MAAM,UAAU,GAAG,IAAA,8BAAgB,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,SAAS,GAAG,IAAI,8BAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAE1D,MAAM,kBAAkB,GAAa,OAAO,CAAC,iBAAiB;gBAC5D,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClH,CAAC,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC;YAE3C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CACpC,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,SAAS,IAAI,KAAK,EAC1B,OAAO,CAAC,OAAO,IAAI,OAAO,EAC1B,EAAE,EACF,kBAAkB,CACnB,CAAC;YAEF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,MAAM,GAA2B,EAAE,CAAC;gBAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAkB,EAAE,CAAC;oBAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC/B,IAAI,GAAG,GAAG,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,uBAAuB,CAAC,CAAC;oBACrF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC;YAED,MAAM,aAAa,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC;YACxD,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,CAAC,mBAAmB,GAAG,aAAa,CAAC,YAAY,CAAC;YAC1D,CAAC;YAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACvE,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;YACnC,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzE,eAAM,CAAC,IAAI,CAAC,4CAA4C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjF,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAiB,CAAC,CAAC,CAAC;gBAC9F,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC9G,CAAC;gBACD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;oBAC7B,MAAM,WAAW,CAAC,IAAoB,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,CAAC,OAAO,CAAC,MAAsB,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,mBAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmGX,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,mBAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC"}
|
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;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -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;
|
|
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);
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAuCxB,MAAa,MAAM;IAWjB,YAAoB,UAAmB;QAN/B,gBAAW,GAAuB,IAAI,CAAC;QAIvC,kBAAa,GAAyB,IAAI,CAAC;QAGjD,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,cAAc,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,eAAe,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACrF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAEO,aAAa;QACnB,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE/C,qCAAqC;QACrC,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAc,CAAC;YACrE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3H,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,mBAAmB,CAAC,GAAuB;QACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,IAAI,GAAG,IAAI,UAAU,CAAC;QAC5C,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,iBAAiB,EAAE,CAAC;YAClF,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,qDAAqD,CAAC,CAAC;QAC3G,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,eAAe;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,GAAyB,EAAE,YAAY,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAA2B,EAAE,cAAc,CAAC,CAAC;QAC7F,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,GAAyB,EAAE,YAAY,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAA4B,EAAE,eAAe,CAAC,CAAC;QAEhG,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,wCAAwC;gBACxC,mGAAmG,CACpG,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IACrC,CAAC;IAED,wBAAwB;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAC3B,IAAI,CAAC,kBAAkB,EAAE,GAAyB,EAClD,QAAQ,CACT,CAAC;QACF,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CACb,+CAA+C;gBAC/C,qDAAqD,CACtD,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAC7B,IAAI,CAAC,kBAAkB,EAAE,KAA2B,EACpD,UAAU,CACX,CAAC;QACF,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC;IAC5C,CAAC;IAEO,gBAAgB,CAAC,SAA8C;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAA2B,EAAE,aAAa,CAAC,CAAC;QACvF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAA6B,EAAE,eAAe,CAAC,CAAC;QAC7F,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,iDAAiD;gBACjD,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC5B,CAAC;IAEO,gBAAgB,CAAC,SAA8C;QACrE,MAAM,WAAW,GAAG,IAAI,CAAC;QACzB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACvC,CAAC;QACD,MAAM,GAAG,GAAG,SAAS,EAAE,GAAG,CAAC;QAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,EAAE,GAAG,EAAE,CAAC;QACjB,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;IAC9B,CAAC;IAEO,uBAAuB,CAAC,GAAY;QAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAa,CAAC;QAC9D,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,kBAAkB,CAAC,SAA8C;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,YAAkC,EAAE,uBAAuB,CAAC,CAAC;QAC/G,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,CAAC;IAC1B,CAAC;IAEO,YAAY,CAAC,WAA+B,EAAE,MAAc;QAClE,oDAAoD;QACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,4BAA4B;QAC5B,OAAO,WAAW,IAAI,IAAI,CAAC;IAC7B,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,UAAmB;QACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAvKD,wBAuKC"}
|
|
@@ -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;
|
|
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"}
|
package/dist/data-collector.js
CHANGED
|
@@ -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
|
|
37
|
-
const [
|
|
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
|
-
//
|
|
54
|
-
|
|
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":";;;AAEA,
|
|
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 {
|
|
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,
|
|
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;
|
|
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":";;
|
|
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 {
|
|
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
|
|
9
|
-
fetchHttpReqDurationData
|
|
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;
|
|
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;AAa5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAGL,cAAc,EACd,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,wBAAwB,EAExB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;YAKlB,iBAAiB;YAwBjB,wBAAwB;IAuBhC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAgDjG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IA0BjF,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAyBvF,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqC/F,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA2BvF,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAmC7G,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAuC/G,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAQzH,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAKnI,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAKzG,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAKvH,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAQrI,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQnI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAQ3F,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAI5G"}
|