elasticdash-test 0.1.20-alpha-5 → 0.1.20-alpha-7
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/dist/ci/trace-writer.d.ts +8 -0
- package/dist/ci/trace-writer.d.ts.map +1 -1
- package/dist/ci/trace-writer.js +38 -1
- package/dist/ci/trace-writer.js.map +1 -1
- package/dist/index.cjs +171 -86
- package/dist/interceptors/telemetry-push.d.ts.map +1 -1
- package/dist/interceptors/telemetry-push.js +3 -1
- package/dist/interceptors/telemetry-push.js.map +1 -1
- package/dist/observability.d.ts.map +1 -1
- package/dist/observability.js +58 -1
- package/dist/observability.js.map +1 -1
- package/dist/telemetry-batcher.d.ts +2 -0
- package/dist/telemetry-batcher.d.ts.map +1 -1
- package/dist/telemetry-batcher.js +6 -3
- package/dist/telemetry-batcher.js.map +1 -1
- package/package.json +1 -1
- package/src/ci/trace-writer.ts +34 -1
- package/src/interceptors/telemetry-push.ts +4 -1
- package/src/observability.ts +61 -1
- package/src/telemetry-batcher.ts +7 -3
|
@@ -4,5 +4,13 @@ export declare function isTraceCaptureEnabled(): boolean;
|
|
|
4
4
|
export declare function generateTraceFilename(): string;
|
|
5
5
|
export declare function scrubSecrets(obj: unknown): unknown;
|
|
6
6
|
export declare function writeTraceToDisk(trace: DiskTrace, cwd?: string): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Synchronous write for use in process.on('exit') handlers where async is not possible.
|
|
9
|
+
*/
|
|
10
|
+
export declare function writeTraceToDiskSync(trace: DiskTrace, cwd?: string): void;
|
|
7
11
|
export declare function maybeCaptureTrace(events: WorkflowEvent[], traceId?: string, cwd?: string): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Synchronous version of maybeCaptureTrace for process exit handlers.
|
|
14
|
+
*/
|
|
15
|
+
export declare function maybeCaptureTraceSync(events: WorkflowEvent[], traceId?: string, cwd?: string): void;
|
|
8
16
|
//# sourceMappingURL=trace-writer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-writer.d.ts","sourceRoot":"","sources":["../../src/ci/trace-writer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"trace-writer.d.ts","sourceRoot":"","sources":["../../src/ci/trace-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAMlD,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAO9C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAelD;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYpF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAYzE;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9G;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CASnG"}
|
package/dist/ci/trace-writer.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
2
3
|
import { join } from 'node:path';
|
|
3
4
|
import { randomBytes } from 'node:crypto';
|
|
4
5
|
import { workflowEventsToDiskTrace } from './trace-schema.js';
|
|
@@ -42,19 +43,55 @@ export async function writeTraceToDisk(trace, cwd) {
|
|
|
42
43
|
const filename = `${scrubbed.trace_id}.json`;
|
|
43
44
|
const filepath = join(dir, filename);
|
|
44
45
|
await writeFile(filepath, JSON.stringify(scrubbed, null, 2), 'utf-8');
|
|
46
|
+
console.log(`[elasticdash] Trace written: ${filepath} (${trace.steps.length} steps)`);
|
|
45
47
|
}
|
|
46
48
|
catch (err) {
|
|
47
49
|
console.warn(`[elasticdash] Failed to write trace file: ${err instanceof Error ? err.message : String(err)}`);
|
|
48
50
|
}
|
|
49
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Synchronous write for use in process.on('exit') handlers where async is not possible.
|
|
54
|
+
*/
|
|
55
|
+
export function writeTraceToDiskSync(trace, cwd) {
|
|
56
|
+
const dir = join(cwd ?? process.cwd(), TRACE_DIR);
|
|
57
|
+
try {
|
|
58
|
+
mkdirSync(dir, { recursive: true });
|
|
59
|
+
const scrubbed = scrubSecrets(trace);
|
|
60
|
+
const filename = `${scrubbed.trace_id}.json`;
|
|
61
|
+
const filepath = join(dir, filename);
|
|
62
|
+
writeFileSync(filepath, JSON.stringify(scrubbed, null, 2), 'utf-8');
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
// In sync exit handler, console.warn may not flush — best effort
|
|
66
|
+
try {
|
|
67
|
+
console.warn(`[elasticdash] Failed to write trace file: ${err instanceof Error ? err.message : String(err)}`);
|
|
68
|
+
}
|
|
69
|
+
catch { }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
50
72
|
export async function maybeCaptureTrace(events, traceId, cwd) {
|
|
51
73
|
if (!isTraceCaptureEnabled())
|
|
52
74
|
return;
|
|
75
|
+
if (events.length === 0)
|
|
76
|
+
return;
|
|
53
77
|
const filename = generateTraceFilename();
|
|
54
78
|
const id = filename.replace(/\.json$/, '');
|
|
55
79
|
const trace = workflowEventsToDiskTrace(events, traceId ?? id);
|
|
56
|
-
// Use the generated filename-style id as trace_id for disk traces
|
|
57
80
|
trace.trace_id = id;
|
|
58
81
|
await writeTraceToDisk(trace, cwd);
|
|
59
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Synchronous version of maybeCaptureTrace for process exit handlers.
|
|
85
|
+
*/
|
|
86
|
+
export function maybeCaptureTraceSync(events, traceId, cwd) {
|
|
87
|
+
if (!isTraceCaptureEnabled())
|
|
88
|
+
return;
|
|
89
|
+
if (events.length === 0)
|
|
90
|
+
return;
|
|
91
|
+
const filename = generateTraceFilename();
|
|
92
|
+
const id = filename.replace(/\.json$/, '');
|
|
93
|
+
const trace = workflowEventsToDiskTrace(events, traceId ?? id);
|
|
94
|
+
trace.trace_id = id;
|
|
95
|
+
writeTraceToDiskSync(trace, cwd);
|
|
96
|
+
}
|
|
60
97
|
//# sourceMappingURL=trace-writer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-writer.js","sourceRoot":"","sources":["../../src/ci/trace-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAG7D,MAAM,SAAS,GAAG,YAAY,CAAA;AAE9B,MAAM,cAAc,GAAG,yDAAyD,CAAA;AAEhF,MAAM,UAAU,qBAAqB;IACnC,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,GAAG,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE;SACzB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAG,sBAAsB;SACjD,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA,CAAU,kBAAkB;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA,CAAC,cAAc;IAC5D,OAAO,GAAG,EAAE,IAAI,MAAM,OAAO,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAA;IACjD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;IAClE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAA4B,EAAE,CAAA;QAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAA8B,CAAC,EAAE,CAAC;YAC1E,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAA;YAC5B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAgB,EAAE,GAAY;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAA;IACjD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAc,CAAA;QACjD,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,QAAQ,OAAO,CAAA;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACpC,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"trace-writer.js","sourceRoot":"","sources":["../../src/ci/trace-writer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -2408,8 +2408,9 @@ var init_redact = __esm({
|
|
|
2408
2408
|
});
|
|
2409
2409
|
|
|
2410
2410
|
// src/telemetry-batcher.ts
|
|
2411
|
-
function* jsonStreamEvents(sessionId, events) {
|
|
2412
|
-
|
|
2411
|
+
function* jsonStreamEvents(sessionId, events, metadata) {
|
|
2412
|
+
const metaPart = metadata ? `,"metadata":${JSON.stringify(metadata)}` : "";
|
|
2413
|
+
yield `{"sessionId":${JSON.stringify(sessionId)}${metaPart},"events":[`;
|
|
2413
2414
|
for (let i = 0; i < events.length; i++) {
|
|
2414
2415
|
if (i > 0) yield ",";
|
|
2415
2416
|
yield JSON.stringify(events[i]);
|
|
@@ -2431,6 +2432,7 @@ var init_telemetry_batcher = __esm({
|
|
|
2431
2432
|
serverUrl;
|
|
2432
2433
|
apiKey;
|
|
2433
2434
|
sessionId;
|
|
2435
|
+
metadata;
|
|
2434
2436
|
maxBatchSize;
|
|
2435
2437
|
redactKeys;
|
|
2436
2438
|
onTrigger;
|
|
@@ -2439,6 +2441,7 @@ var init_telemetry_batcher = __esm({
|
|
|
2439
2441
|
this.serverUrl = opts.serverUrl.replace(/\/$/, "");
|
|
2440
2442
|
this.apiKey = opts.apiKey;
|
|
2441
2443
|
this.sessionId = opts.sessionId;
|
|
2444
|
+
this.metadata = opts.metadata;
|
|
2442
2445
|
this.maxBatchSize = opts.maxBatchSize ?? 50;
|
|
2443
2446
|
this.redactKeys = opts.redactKeys ?? [];
|
|
2444
2447
|
this.onTrigger = opts.onTrigger;
|
|
@@ -2478,7 +2481,7 @@ var init_telemetry_batcher = __esm({
|
|
|
2478
2481
|
};
|
|
2479
2482
|
if (this.apiKey) headers2["Authorization"] = `Bearer ${this.apiKey}`;
|
|
2480
2483
|
try {
|
|
2481
|
-
const body = import_node_stream2.Readable.from(jsonStreamEvents(this.sessionId, batch));
|
|
2484
|
+
const body = import_node_stream2.Readable.from(jsonStreamEvents(this.sessionId, batch, this.metadata));
|
|
2482
2485
|
const res = await getOriginalFetch()(url, {
|
|
2483
2486
|
method: "POST",
|
|
2484
2487
|
headers: headers2,
|
|
@@ -3406,23 +3409,50 @@ async function writeTraceToDisk(trace, cwd) {
|
|
|
3406
3409
|
const filename = `${scrubbed.trace_id}.json`;
|
|
3407
3410
|
const filepath = (0, import_node_path3.join)(dir, filename);
|
|
3408
3411
|
await (0, import_promises.writeFile)(filepath, JSON.stringify(scrubbed, null, 2), "utf-8");
|
|
3412
|
+
console.log(`[elasticdash] Trace written: ${filepath} (${trace.steps.length} steps)`);
|
|
3409
3413
|
} catch (err) {
|
|
3410
3414
|
console.warn(`[elasticdash] Failed to write trace file: ${err instanceof Error ? err.message : String(err)}`);
|
|
3411
3415
|
}
|
|
3412
3416
|
}
|
|
3417
|
+
function writeTraceToDiskSync(trace, cwd) {
|
|
3418
|
+
const dir = (0, import_node_path3.join)(cwd ?? process.cwd(), TRACE_DIR);
|
|
3419
|
+
try {
|
|
3420
|
+
(0, import_node_fs2.mkdirSync)(dir, { recursive: true });
|
|
3421
|
+
const scrubbed = scrubSecrets(trace);
|
|
3422
|
+
const filename = `${scrubbed.trace_id}.json`;
|
|
3423
|
+
const filepath = (0, import_node_path3.join)(dir, filename);
|
|
3424
|
+
(0, import_node_fs2.writeFileSync)(filepath, JSON.stringify(scrubbed, null, 2), "utf-8");
|
|
3425
|
+
} catch (err) {
|
|
3426
|
+
try {
|
|
3427
|
+
console.warn(`[elasticdash] Failed to write trace file: ${err instanceof Error ? err.message : String(err)}`);
|
|
3428
|
+
} catch {
|
|
3429
|
+
}
|
|
3430
|
+
}
|
|
3431
|
+
}
|
|
3413
3432
|
async function maybeCaptureTrace(events, traceId, cwd) {
|
|
3414
3433
|
if (!isTraceCaptureEnabled()) return;
|
|
3434
|
+
if (events.length === 0) return;
|
|
3415
3435
|
const filename = generateTraceFilename();
|
|
3416
3436
|
const id = filename.replace(/\.json$/, "");
|
|
3417
3437
|
const trace = workflowEventsToDiskTrace(events, traceId ?? id);
|
|
3418
3438
|
trace.trace_id = id;
|
|
3419
3439
|
await writeTraceToDisk(trace, cwd);
|
|
3420
3440
|
}
|
|
3421
|
-
|
|
3441
|
+
function maybeCaptureTraceSync(events, traceId, cwd) {
|
|
3442
|
+
if (!isTraceCaptureEnabled()) return;
|
|
3443
|
+
if (events.length === 0) return;
|
|
3444
|
+
const filename = generateTraceFilename();
|
|
3445
|
+
const id = filename.replace(/\.json$/, "");
|
|
3446
|
+
const trace = workflowEventsToDiskTrace(events, traceId ?? id);
|
|
3447
|
+
trace.trace_id = id;
|
|
3448
|
+
writeTraceToDiskSync(trace, cwd);
|
|
3449
|
+
}
|
|
3450
|
+
var import_promises, import_node_fs2, import_node_path3, import_node_crypto4, TRACE_DIR, SENSITIVE_KEYS;
|
|
3422
3451
|
var init_trace_writer = __esm({
|
|
3423
3452
|
"src/ci/trace-writer.ts"() {
|
|
3424
3453
|
"use strict";
|
|
3425
3454
|
import_promises = require("node:fs/promises");
|
|
3455
|
+
import_node_fs2 = require("node:fs");
|
|
3426
3456
|
import_node_path3 = require("node:path");
|
|
3427
3457
|
import_node_crypto4 = require("node:crypto");
|
|
3428
3458
|
init_trace_schema();
|
|
@@ -3431,6 +3461,91 @@ var init_trace_writer = __esm({
|
|
|
3431
3461
|
}
|
|
3432
3462
|
});
|
|
3433
3463
|
|
|
3464
|
+
// src/ci/git-info.ts
|
|
3465
|
+
function detectGitInfo() {
|
|
3466
|
+
const env = process.env;
|
|
3467
|
+
if (env.GITHUB_ACTIONS === "true") {
|
|
3468
|
+
const prNumber = env.GITHUB_EVENT_NAME === "pull_request" ? parseInt(env.GITHUB_REF?.match(/refs\/pull\/(\d+)/)?.[1] ?? "", 10) || void 0 : void 0;
|
|
3469
|
+
const repo = env.GITHUB_REPOSITORY;
|
|
3470
|
+
const prUrl = prNumber && repo ? `https://github.com/${repo}/pull/${prNumber}` : void 0;
|
|
3471
|
+
const serverUrl = env.GITHUB_SERVER_URL || "https://github.com";
|
|
3472
|
+
const ciRunUrl = repo && env.GITHUB_RUN_ID ? `${serverUrl}/${repo}/actions/runs/${env.GITHUB_RUN_ID}` : void 0;
|
|
3473
|
+
return {
|
|
3474
|
+
branch: env.GITHUB_HEAD_REF || env.GITHUB_REF_NAME,
|
|
3475
|
+
commit: env.GITHUB_SHA,
|
|
3476
|
+
commitMessage: env.GITHUB_COMMIT_MESSAGE,
|
|
3477
|
+
baseBranch: env.GITHUB_BASE_REF || void 0,
|
|
3478
|
+
prNumber,
|
|
3479
|
+
prUrl,
|
|
3480
|
+
repo,
|
|
3481
|
+
ciProvider: "github-actions",
|
|
3482
|
+
ciRunUrl
|
|
3483
|
+
};
|
|
3484
|
+
}
|
|
3485
|
+
if (env.GITLAB_CI === "true") {
|
|
3486
|
+
const prNumber = env.CI_MERGE_REQUEST_IID ? parseInt(env.CI_MERGE_REQUEST_IID, 10) || void 0 : void 0;
|
|
3487
|
+
return {
|
|
3488
|
+
branch: env.CI_MERGE_REQUEST_SOURCE_BRANCH_NAME || env.CI_COMMIT_BRANCH,
|
|
3489
|
+
commit: env.CI_COMMIT_SHA,
|
|
3490
|
+
commitMessage: env.CI_COMMIT_MESSAGE,
|
|
3491
|
+
baseBranch: env.CI_MERGE_REQUEST_TARGET_BRANCH_NAME || void 0,
|
|
3492
|
+
prNumber,
|
|
3493
|
+
prUrl: env.CI_MERGE_REQUEST_PROJECT_URL && prNumber ? `${env.CI_MERGE_REQUEST_PROJECT_URL}/-/merge_requests/${prNumber}` : void 0,
|
|
3494
|
+
repo: env.CI_PROJECT_PATH,
|
|
3495
|
+
ciProvider: "gitlab-ci",
|
|
3496
|
+
ciRunUrl: env.CI_JOB_URL
|
|
3497
|
+
};
|
|
3498
|
+
}
|
|
3499
|
+
if (env.CIRCLECI === "true") {
|
|
3500
|
+
const prNumber = env.CIRCLE_PULL_REQUEST ? parseInt(env.CIRCLE_PULL_REQUEST.split("/").pop() ?? "", 10) || void 0 : void 0;
|
|
3501
|
+
return {
|
|
3502
|
+
branch: env.CIRCLE_BRANCH,
|
|
3503
|
+
commit: env.CIRCLE_SHA1,
|
|
3504
|
+
prNumber,
|
|
3505
|
+
repo: env.CIRCLE_PROJECT_REPONAME,
|
|
3506
|
+
ciProvider: "circleci",
|
|
3507
|
+
ciRunUrl: env.CIRCLE_BUILD_URL
|
|
3508
|
+
};
|
|
3509
|
+
}
|
|
3510
|
+
if (env.BUILDKITE === "true") {
|
|
3511
|
+
const prNumber = env.BUILDKITE_PULL_REQUEST && env.BUILDKITE_PULL_REQUEST !== "false" ? parseInt(env.BUILDKITE_PULL_REQUEST, 10) || void 0 : void 0;
|
|
3512
|
+
return {
|
|
3513
|
+
branch: env.BUILDKITE_BRANCH,
|
|
3514
|
+
commit: env.BUILDKITE_COMMIT,
|
|
3515
|
+
baseBranch: env.BUILDKITE_PULL_REQUEST_BASE_BRANCH || void 0,
|
|
3516
|
+
prNumber,
|
|
3517
|
+
repo: env.BUILDKITE_REPO,
|
|
3518
|
+
ciProvider: "buildkite",
|
|
3519
|
+
ciRunUrl: env.BUILDKITE_BUILD_URL
|
|
3520
|
+
};
|
|
3521
|
+
}
|
|
3522
|
+
return detectLocalGitInfo();
|
|
3523
|
+
}
|
|
3524
|
+
function detectLocalGitInfo() {
|
|
3525
|
+
try {
|
|
3526
|
+
const commit = (0, import_node_child_process2.execSync)("git rev-parse HEAD", { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }).trim();
|
|
3527
|
+
const branch = (0, import_node_child_process2.execSync)("git rev-parse --abbrev-ref HEAD", { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }).trim();
|
|
3528
|
+
return {
|
|
3529
|
+
branch: branch || void 0,
|
|
3530
|
+
commit: commit || void 0,
|
|
3531
|
+
ciProvider: "local"
|
|
3532
|
+
};
|
|
3533
|
+
} catch {
|
|
3534
|
+
return {
|
|
3535
|
+
branch: "unknown",
|
|
3536
|
+
commit: "unknown",
|
|
3537
|
+
ciProvider: "local"
|
|
3538
|
+
};
|
|
3539
|
+
}
|
|
3540
|
+
}
|
|
3541
|
+
var import_node_child_process2;
|
|
3542
|
+
var init_git_info = __esm({
|
|
3543
|
+
"src/ci/git-info.ts"() {
|
|
3544
|
+
"use strict";
|
|
3545
|
+
import_node_child_process2 = require("node:child_process");
|
|
3546
|
+
}
|
|
3547
|
+
});
|
|
3548
|
+
|
|
3434
3549
|
// src/observability.ts
|
|
3435
3550
|
var observability_exports = {};
|
|
3436
3551
|
__export(observability_exports, {
|
|
@@ -3453,10 +3568,20 @@ function initObservability(options) {
|
|
|
3453
3568
|
const cwd = process.cwd();
|
|
3454
3569
|
const workflows = scanWorkflows(cwd);
|
|
3455
3570
|
const defaultWorkflowName = workflows.length === 1 ? workflows[0].name : "unknown-workflow";
|
|
3571
|
+
let gitInfo = {};
|
|
3572
|
+
try {
|
|
3573
|
+
gitInfo = detectGitInfo();
|
|
3574
|
+
} catch {
|
|
3575
|
+
}
|
|
3576
|
+
const sessionMetadata = {};
|
|
3577
|
+
if (gitInfo.branch && gitInfo.branch !== "unknown") sessionMetadata.branch = gitInfo.branch;
|
|
3578
|
+
if (gitInfo.commit && gitInfo.commit !== "unknown") sessionMetadata.commit = gitInfo.commit;
|
|
3579
|
+
if (gitInfo.ciProvider && gitInfo.ciProvider !== "local") sessionMetadata.ciProvider = gitInfo.ciProvider;
|
|
3456
3580
|
const batcher = new TelemetryBatcher({
|
|
3457
3581
|
serverUrl,
|
|
3458
3582
|
apiKey,
|
|
3459
3583
|
sessionId,
|
|
3584
|
+
metadata: Object.keys(sessionMetadata).length > 0 ? sessionMetadata : void 0,
|
|
3460
3585
|
batchIntervalMs: options?.batchIntervalMs,
|
|
3461
3586
|
maxBatchSize: options?.maxBatchSize,
|
|
3462
3587
|
redactKeys,
|
|
@@ -3507,6 +3632,14 @@ function initObservability(options) {
|
|
|
3507
3632
|
process.once("beforeExit", onExit);
|
|
3508
3633
|
process.once("SIGTERM", onExit);
|
|
3509
3634
|
process.once("SIGINT", onExit);
|
|
3635
|
+
if (isTraceCaptureEnabled()) {
|
|
3636
|
+
process.once("exit", () => {
|
|
3637
|
+
const exitCtx = getObservabilityContext();
|
|
3638
|
+
if (exitCtx?.eventCollector && exitCtx.eventCollector.length > 0) {
|
|
3639
|
+
maybeCaptureTraceSync(exitCtx.eventCollector, exitCtx.traceId);
|
|
3640
|
+
}
|
|
3641
|
+
});
|
|
3642
|
+
}
|
|
3510
3643
|
}
|
|
3511
3644
|
debugLog(`[elasticdash] Observability initialised \u2014 sessionId=${sessionId} workflow=${defaultWorkflowName} server=${serverUrl}`);
|
|
3512
3645
|
pushCatalog(serverUrl, apiKey, workflows).catch(() => {
|
|
@@ -3539,6 +3672,11 @@ async function pushCatalog(serverUrl, apiKey, workflows = []) {
|
|
|
3539
3672
|
async function shutdownObservability() {
|
|
3540
3673
|
const ctx = getObservabilityContext();
|
|
3541
3674
|
if (!ctx) return;
|
|
3675
|
+
if (ctx.eventCollector && ctx.eventCollector.length > 0) {
|
|
3676
|
+
const events = ctx.eventCollector;
|
|
3677
|
+
ctx.eventCollector = void 0;
|
|
3678
|
+
await maybeCaptureTrace(events, ctx.traceId);
|
|
3679
|
+
}
|
|
3542
3680
|
if (heartbeatTimer) {
|
|
3543
3681
|
clearInterval(heartbeatTimer);
|
|
3544
3682
|
heartbeatTimer = null;
|
|
@@ -3561,10 +3699,22 @@ async function shutdownObservability() {
|
|
|
3561
3699
|
function startTrace(workflowName) {
|
|
3562
3700
|
const ctx = getObservabilityContext();
|
|
3563
3701
|
if (!ctx) throw new Error("[elasticdash] startTrace: observability not initialised");
|
|
3702
|
+
if (ctx.eventCollector && ctx.eventCollector.length > 0) {
|
|
3703
|
+
debugLog(`[elasticdash] startTrace: flushing ${ctx.eventCollector.length} events from previous trace`);
|
|
3704
|
+
const events = ctx.eventCollector;
|
|
3705
|
+
ctx.eventCollector = void 0;
|
|
3706
|
+
maybeCaptureTrace(events, ctx.traceId).catch((err) => {
|
|
3707
|
+
debugLog(`[elasticdash] Failed to capture trace: ${err instanceof Error ? err.message : String(err)}`);
|
|
3708
|
+
});
|
|
3709
|
+
}
|
|
3564
3710
|
const resolvedName = workflowName || ctx.defaultWorkflowName;
|
|
3565
3711
|
const timestamp = Date.now();
|
|
3566
3712
|
const shortId = (0, import_node_crypto5.randomUUID)().slice(0, 8);
|
|
3567
3713
|
ctx.traceId = `${resolvedName}::${timestamp}::${shortId}`;
|
|
3714
|
+
if (isTraceCaptureEnabled()) {
|
|
3715
|
+
debugLog(`[elasticdash] startTrace: trace capture enabled, collecting events for ${resolvedName}`);
|
|
3716
|
+
ctx.eventCollector = [];
|
|
3717
|
+
}
|
|
3568
3718
|
pushTelemetryEvent({
|
|
3569
3719
|
id: ctx.nextId(),
|
|
3570
3720
|
type: "workflow",
|
|
@@ -3579,7 +3729,16 @@ function startTrace(workflowName) {
|
|
|
3579
3729
|
}
|
|
3580
3730
|
function endTrace() {
|
|
3581
3731
|
const ctx = getObservabilityContext();
|
|
3732
|
+
debugLog(`[elasticdash] endTrace called, obsCtx=${!!ctx}, eventCollector=${ctx?.eventCollector?.length ?? "none"}`);
|
|
3582
3733
|
if (!ctx) return;
|
|
3734
|
+
if (ctx.eventCollector && ctx.eventCollector.length > 0) {
|
|
3735
|
+
debugLog(`[elasticdash] endTrace: flushing ${ctx.eventCollector.length} events to disk for traceId=${ctx.traceId}`);
|
|
3736
|
+
const events = ctx.eventCollector;
|
|
3737
|
+
ctx.eventCollector = void 0;
|
|
3738
|
+
maybeCaptureTrace(events, ctx.traceId).catch((err) => {
|
|
3739
|
+
debugLog(`[elasticdash] Failed to capture trace: ${err instanceof Error ? err.message : String(err)}`);
|
|
3740
|
+
});
|
|
3741
|
+
}
|
|
3583
3742
|
const timestamp = Date.now();
|
|
3584
3743
|
const shortId = (0, import_node_crypto5.randomUUID)().slice(0, 8);
|
|
3585
3744
|
ctx.traceId = `${ctx.defaultWorkflowName}::${timestamp}::${shortId}`;
|
|
@@ -3634,6 +3793,7 @@ var init_observability = __esm({
|
|
|
3634
3793
|
init_tool_runner();
|
|
3635
3794
|
init_debug();
|
|
3636
3795
|
init_trace_writer();
|
|
3796
|
+
init_git_info();
|
|
3637
3797
|
heartbeatTimer = null;
|
|
3638
3798
|
shutdownRegistered = false;
|
|
3639
3799
|
}
|
|
@@ -3828,7 +3988,10 @@ function pushTelemetryEvent(event, explicitCtx) {
|
|
|
3828
3988
|
if (obsCtx.isRerun) {
|
|
3829
3989
|
event.isRerun = true;
|
|
3830
3990
|
}
|
|
3831
|
-
if (obsCtx.eventCollector)
|
|
3991
|
+
if (obsCtx.eventCollector) {
|
|
3992
|
+
obsCtx.eventCollector.push({ ...event });
|
|
3993
|
+
debugLog(`[elasticdash] pushTelemetryEvent: collected event type=${event.type} name=${"name" in event ? event.name : "?"} (total: ${obsCtx.eventCollector.length})`);
|
|
3994
|
+
}
|
|
3832
3995
|
obsCtx.batcher.enqueue(event);
|
|
3833
3996
|
return;
|
|
3834
3997
|
}
|
|
@@ -6207,87 +6370,7 @@ function matchGlob(name, pattern) {
|
|
|
6207
6370
|
// src/ci/upload-client.ts
|
|
6208
6371
|
var import_node_crypto9 = require("node:crypto");
|
|
6209
6372
|
init_http();
|
|
6210
|
-
|
|
6211
|
-
// src/ci/git-info.ts
|
|
6212
|
-
var import_node_child_process2 = require("node:child_process");
|
|
6213
|
-
function detectGitInfo() {
|
|
6214
|
-
const env = process.env;
|
|
6215
|
-
if (env.GITHUB_ACTIONS === "true") {
|
|
6216
|
-
const prNumber = env.GITHUB_EVENT_NAME === "pull_request" ? parseInt(env.GITHUB_REF?.match(/refs\/pull\/(\d+)/)?.[1] ?? "", 10) || void 0 : void 0;
|
|
6217
|
-
const repo = env.GITHUB_REPOSITORY;
|
|
6218
|
-
const prUrl = prNumber && repo ? `https://github.com/${repo}/pull/${prNumber}` : void 0;
|
|
6219
|
-
const serverUrl = env.GITHUB_SERVER_URL || "https://github.com";
|
|
6220
|
-
const ciRunUrl = repo && env.GITHUB_RUN_ID ? `${serverUrl}/${repo}/actions/runs/${env.GITHUB_RUN_ID}` : void 0;
|
|
6221
|
-
return {
|
|
6222
|
-
branch: env.GITHUB_HEAD_REF || env.GITHUB_REF_NAME,
|
|
6223
|
-
commit: env.GITHUB_SHA,
|
|
6224
|
-
commitMessage: env.GITHUB_COMMIT_MESSAGE,
|
|
6225
|
-
baseBranch: env.GITHUB_BASE_REF || void 0,
|
|
6226
|
-
prNumber,
|
|
6227
|
-
prUrl,
|
|
6228
|
-
repo,
|
|
6229
|
-
ciProvider: "github-actions",
|
|
6230
|
-
ciRunUrl
|
|
6231
|
-
};
|
|
6232
|
-
}
|
|
6233
|
-
if (env.GITLAB_CI === "true") {
|
|
6234
|
-
const prNumber = env.CI_MERGE_REQUEST_IID ? parseInt(env.CI_MERGE_REQUEST_IID, 10) || void 0 : void 0;
|
|
6235
|
-
return {
|
|
6236
|
-
branch: env.CI_MERGE_REQUEST_SOURCE_BRANCH_NAME || env.CI_COMMIT_BRANCH,
|
|
6237
|
-
commit: env.CI_COMMIT_SHA,
|
|
6238
|
-
commitMessage: env.CI_COMMIT_MESSAGE,
|
|
6239
|
-
baseBranch: env.CI_MERGE_REQUEST_TARGET_BRANCH_NAME || void 0,
|
|
6240
|
-
prNumber,
|
|
6241
|
-
prUrl: env.CI_MERGE_REQUEST_PROJECT_URL && prNumber ? `${env.CI_MERGE_REQUEST_PROJECT_URL}/-/merge_requests/${prNumber}` : void 0,
|
|
6242
|
-
repo: env.CI_PROJECT_PATH,
|
|
6243
|
-
ciProvider: "gitlab-ci",
|
|
6244
|
-
ciRunUrl: env.CI_JOB_URL
|
|
6245
|
-
};
|
|
6246
|
-
}
|
|
6247
|
-
if (env.CIRCLECI === "true") {
|
|
6248
|
-
const prNumber = env.CIRCLE_PULL_REQUEST ? parseInt(env.CIRCLE_PULL_REQUEST.split("/").pop() ?? "", 10) || void 0 : void 0;
|
|
6249
|
-
return {
|
|
6250
|
-
branch: env.CIRCLE_BRANCH,
|
|
6251
|
-
commit: env.CIRCLE_SHA1,
|
|
6252
|
-
prNumber,
|
|
6253
|
-
repo: env.CIRCLE_PROJECT_REPONAME,
|
|
6254
|
-
ciProvider: "circleci",
|
|
6255
|
-
ciRunUrl: env.CIRCLE_BUILD_URL
|
|
6256
|
-
};
|
|
6257
|
-
}
|
|
6258
|
-
if (env.BUILDKITE === "true") {
|
|
6259
|
-
const prNumber = env.BUILDKITE_PULL_REQUEST && env.BUILDKITE_PULL_REQUEST !== "false" ? parseInt(env.BUILDKITE_PULL_REQUEST, 10) || void 0 : void 0;
|
|
6260
|
-
return {
|
|
6261
|
-
branch: env.BUILDKITE_BRANCH,
|
|
6262
|
-
commit: env.BUILDKITE_COMMIT,
|
|
6263
|
-
baseBranch: env.BUILDKITE_PULL_REQUEST_BASE_BRANCH || void 0,
|
|
6264
|
-
prNumber,
|
|
6265
|
-
repo: env.BUILDKITE_REPO,
|
|
6266
|
-
ciProvider: "buildkite",
|
|
6267
|
-
ciRunUrl: env.BUILDKITE_BUILD_URL
|
|
6268
|
-
};
|
|
6269
|
-
}
|
|
6270
|
-
return detectLocalGitInfo();
|
|
6271
|
-
}
|
|
6272
|
-
function detectLocalGitInfo() {
|
|
6273
|
-
try {
|
|
6274
|
-
const commit = (0, import_node_child_process2.execSync)("git rev-parse HEAD", { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }).trim();
|
|
6275
|
-
const branch = (0, import_node_child_process2.execSync)("git rev-parse --abbrev-ref HEAD", { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }).trim();
|
|
6276
|
-
return {
|
|
6277
|
-
branch: branch || void 0,
|
|
6278
|
-
commit: commit || void 0,
|
|
6279
|
-
ciProvider: "local"
|
|
6280
|
-
};
|
|
6281
|
-
} catch {
|
|
6282
|
-
return {
|
|
6283
|
-
branch: "unknown",
|
|
6284
|
-
commit: "unknown",
|
|
6285
|
-
ciProvider: "local"
|
|
6286
|
-
};
|
|
6287
|
-
}
|
|
6288
|
-
}
|
|
6289
|
-
|
|
6290
|
-
// src/ci/upload-client.ts
|
|
6373
|
+
init_git_info();
|
|
6291
6374
|
function buildUploadPayload(runResult) {
|
|
6292
6375
|
const gitInfo = detectGitInfo();
|
|
6293
6376
|
return {
|
|
@@ -6965,6 +7048,7 @@ function determinePassFail(passThreshold, singleRuns, expectationResults) {
|
|
|
6965
7048
|
}
|
|
6966
7049
|
|
|
6967
7050
|
// src/ci/runner.ts
|
|
7051
|
+
init_git_info();
|
|
6968
7052
|
async function runCI(config) {
|
|
6969
7053
|
const { serverUrl, apiKey } = config;
|
|
6970
7054
|
const cwd = process.cwd();
|
|
@@ -7139,6 +7223,7 @@ async function runCI(config) {
|
|
|
7139
7223
|
}
|
|
7140
7224
|
|
|
7141
7225
|
// src/index.ts
|
|
7226
|
+
init_git_info();
|
|
7142
7227
|
init_telemetry_push();
|
|
7143
7228
|
tryAutoInitHttpContext().catch(() => {
|
|
7144
7229
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-push.d.ts","sourceRoot":"","sources":["../../src/interceptors/telemetry-push.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"telemetry-push.d.ts","sourceRoot":"","sources":["../../src/interceptors/telemetry-push.ts"],"names":[],"mappings":"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"}
|
|
@@ -243,8 +243,10 @@ export function pushTelemetryEvent(event, explicitCtx) {
|
|
|
243
243
|
if (obsCtx.isRerun) {
|
|
244
244
|
event.isRerun = true;
|
|
245
245
|
}
|
|
246
|
-
if (obsCtx.eventCollector)
|
|
246
|
+
if (obsCtx.eventCollector) {
|
|
247
247
|
obsCtx.eventCollector.push({ ...event });
|
|
248
|
+
debugLog(`[elasticdash] pushTelemetryEvent: collected event type=${event.type} name=${('name' in event ? event.name : '?')} (total: ${obsCtx.eventCollector.length})`);
|
|
249
|
+
}
|
|
248
250
|
obsCtx.batcher.enqueue(event);
|
|
249
251
|
return;
|
|
250
252
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-push.js","sourceRoot":"","sources":["../../src/interceptors/telemetry-push.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"telemetry-push.js","sourceRoot":"","sources":["../../src/interceptors/telemetry-push.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9B;AAKD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,mBAAmB,CA0GrF;AA+BD;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAqC3D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAuCxD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAkB/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,EACpD,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAChC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAuC/B"}
|
package/dist/observability.js
CHANGED
|
@@ -8,7 +8,8 @@ import { connectToBackend, disconnectFromBackend } from './socket-connector.js';
|
|
|
8
8
|
import { executeTrigger } from './trigger-executor.js';
|
|
9
9
|
import { scanTools, scanWorkflows } from './execution/tool-runner.js';
|
|
10
10
|
import { debugLog } from './utils/debug.js';
|
|
11
|
-
import { maybeCaptureTrace } from './ci/trace-writer.js';
|
|
11
|
+
import { isTraceCaptureEnabled, maybeCaptureTrace, maybeCaptureTraceSync } from './ci/trace-writer.js';
|
|
12
|
+
import { detectGitInfo } from './ci/git-info.js';
|
|
12
13
|
let heartbeatTimer = null;
|
|
13
14
|
let shutdownRegistered = false;
|
|
14
15
|
/**
|
|
@@ -34,10 +35,25 @@ export function initObservability(options) {
|
|
|
34
35
|
const cwd = process.cwd();
|
|
35
36
|
const workflows = scanWorkflows(cwd);
|
|
36
37
|
const defaultWorkflowName = workflows.length === 1 ? workflows[0].name : 'unknown-workflow';
|
|
38
|
+
// Detect git info for session metadata (branch, commit, CI provider)
|
|
39
|
+
// If detection fails, values are omitted — never store 'unknown' placeholders
|
|
40
|
+
let gitInfo = {};
|
|
41
|
+
try {
|
|
42
|
+
gitInfo = detectGitInfo();
|
|
43
|
+
}
|
|
44
|
+
catch { /* not in a git repo — skip */ }
|
|
45
|
+
const sessionMetadata = {};
|
|
46
|
+
if (gitInfo.branch && gitInfo.branch !== 'unknown')
|
|
47
|
+
sessionMetadata.branch = gitInfo.branch;
|
|
48
|
+
if (gitInfo.commit && gitInfo.commit !== 'unknown')
|
|
49
|
+
sessionMetadata.commit = gitInfo.commit;
|
|
50
|
+
if (gitInfo.ciProvider && gitInfo.ciProvider !== 'local')
|
|
51
|
+
sessionMetadata.ciProvider = gitInfo.ciProvider;
|
|
37
52
|
const batcher = new TelemetryBatcher({
|
|
38
53
|
serverUrl,
|
|
39
54
|
apiKey,
|
|
40
55
|
sessionId,
|
|
56
|
+
metadata: Object.keys(sessionMetadata).length > 0 ? sessionMetadata : undefined,
|
|
41
57
|
batchIntervalMs: options?.batchIntervalMs,
|
|
42
58
|
maxBatchSize: options?.maxBatchSize,
|
|
43
59
|
redactKeys,
|
|
@@ -86,6 +102,17 @@ export function initObservability(options) {
|
|
|
86
102
|
process.once('beforeExit', onExit);
|
|
87
103
|
process.once('SIGTERM', onExit);
|
|
88
104
|
process.once('SIGINT', onExit);
|
|
105
|
+
// Sync exit handler: last resort to flush any pending trace capture.
|
|
106
|
+
// process.on('exit') only allows synchronous code — the async handlers above
|
|
107
|
+
// may not complete before the process terminates (e.g. SIGINT on a dev server).
|
|
108
|
+
if (isTraceCaptureEnabled()) {
|
|
109
|
+
process.once('exit', () => {
|
|
110
|
+
const exitCtx = getObservabilityContext();
|
|
111
|
+
if (exitCtx?.eventCollector && exitCtx.eventCollector.length > 0) {
|
|
112
|
+
maybeCaptureTraceSync(exitCtx.eventCollector, exitCtx.traceId);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
89
116
|
}
|
|
90
117
|
debugLog(`[elasticdash] Observability initialised — sessionId=${sessionId} workflow=${defaultWorkflowName} server=${serverUrl}`);
|
|
91
118
|
// Push workflow/tool catalog to backend (fire-and-forget)
|
|
@@ -132,6 +159,12 @@ export async function shutdownObservability() {
|
|
|
132
159
|
const ctx = getObservabilityContext();
|
|
133
160
|
if (!ctx)
|
|
134
161
|
return;
|
|
162
|
+
// Flush any pending trace capture before shutdown
|
|
163
|
+
if (ctx.eventCollector && ctx.eventCollector.length > 0) {
|
|
164
|
+
const events = ctx.eventCollector;
|
|
165
|
+
ctx.eventCollector = undefined;
|
|
166
|
+
await maybeCaptureTrace(events, ctx.traceId);
|
|
167
|
+
}
|
|
135
168
|
// Stop heartbeat
|
|
136
169
|
if (heartbeatTimer) {
|
|
137
170
|
clearInterval(heartbeatTimer);
|
|
@@ -178,10 +211,24 @@ export function startTrace(workflowName) {
|
|
|
178
211
|
const ctx = getObservabilityContext();
|
|
179
212
|
if (!ctx)
|
|
180
213
|
throw new Error('[elasticdash] startTrace: observability not initialised');
|
|
214
|
+
// Flush any pending trace capture from a previous startTrace() that had no endTrace()
|
|
215
|
+
if (ctx.eventCollector && ctx.eventCollector.length > 0) {
|
|
216
|
+
debugLog(`[elasticdash] startTrace: flushing ${ctx.eventCollector.length} events from previous trace`);
|
|
217
|
+
const events = ctx.eventCollector;
|
|
218
|
+
ctx.eventCollector = undefined;
|
|
219
|
+
maybeCaptureTrace(events, ctx.traceId).catch((err) => {
|
|
220
|
+
debugLog(`[elasticdash] Failed to capture trace: ${err instanceof Error ? err.message : String(err)}`);
|
|
221
|
+
});
|
|
222
|
+
}
|
|
181
223
|
const resolvedName = workflowName || ctx.defaultWorkflowName;
|
|
182
224
|
const timestamp = Date.now();
|
|
183
225
|
const shortId = randomUUID().slice(0, 8);
|
|
184
226
|
ctx.traceId = `${resolvedName}::${timestamp}::${shortId}`;
|
|
227
|
+
// When ELASTICDASH_CAPTURE_TRACE=1, start collecting events for disk trace
|
|
228
|
+
if (isTraceCaptureEnabled()) {
|
|
229
|
+
debugLog(`[elasticdash] startTrace: trace capture enabled, collecting events for ${resolvedName}`);
|
|
230
|
+
ctx.eventCollector = [];
|
|
231
|
+
}
|
|
185
232
|
// Emit a workflow event so the backend can discover the workflow name
|
|
186
233
|
// (same as wrapWorkflow, but without wrapping — for streaming handlers)
|
|
187
234
|
pushTelemetryEvent({
|
|
@@ -212,8 +259,18 @@ export function startTrace(workflowName) {
|
|
|
212
259
|
*/
|
|
213
260
|
export function endTrace() {
|
|
214
261
|
const ctx = getObservabilityContext();
|
|
262
|
+
debugLog(`[elasticdash] endTrace called, obsCtx=${!!ctx}, eventCollector=${ctx?.eventCollector?.length ?? 'none'}`);
|
|
215
263
|
if (!ctx)
|
|
216
264
|
return;
|
|
265
|
+
// Flush collected events to disk if trace capture is enabled
|
|
266
|
+
if (ctx.eventCollector && ctx.eventCollector.length > 0) {
|
|
267
|
+
debugLog(`[elasticdash] endTrace: flushing ${ctx.eventCollector.length} events to disk for traceId=${ctx.traceId}`);
|
|
268
|
+
const events = ctx.eventCollector;
|
|
269
|
+
ctx.eventCollector = undefined;
|
|
270
|
+
maybeCaptureTrace(events, ctx.traceId).catch((err) => {
|
|
271
|
+
debugLog(`[elasticdash] Failed to capture trace: ${err instanceof Error ? err.message : String(err)}`);
|
|
272
|
+
});
|
|
273
|
+
}
|
|
217
274
|
const timestamp = Date.now();
|
|
218
275
|
const shortId = randomUUID().slice(0, 8);
|
|
219
276
|
ctx.traceId = `${ctx.defaultWorkflowName}::${timestamp}::${shortId}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observability.js","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"observability.js","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ export interface TelemetryBatcherOptions {
|
|
|
30
30
|
serverUrl: string;
|
|
31
31
|
apiKey?: string;
|
|
32
32
|
sessionId: string;
|
|
33
|
+
metadata?: Record<string, unknown>;
|
|
33
34
|
batchIntervalMs?: number;
|
|
34
35
|
maxBatchSize?: number;
|
|
35
36
|
redactKeys?: string[];
|
|
@@ -41,6 +42,7 @@ export declare class TelemetryBatcher {
|
|
|
41
42
|
private readonly serverUrl;
|
|
42
43
|
private readonly apiKey;
|
|
43
44
|
private readonly sessionId;
|
|
45
|
+
private readonly metadata;
|
|
44
46
|
private readonly maxBatchSize;
|
|
45
47
|
private readonly redactKeys;
|
|
46
48
|
private readonly onTrigger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-batcher.d.ts","sourceRoot":"","sources":["../src/telemetry-batcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAKvD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACtD;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyD;IACnF,OAAO,CAAC,YAAY,CAAQ;gBAEhB,IAAI,EAAE,uBAAuB;
|
|
1
|
+
{"version":3,"file":"telemetry-batcher.d.ts","sourceRoot":"","sources":["../src/telemetry-batcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAKvD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACtD;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyD;IACnF,OAAO,CAAC,YAAY,CAAQ;gBAEhB,IAAI,EAAE,uBAAuB;IAiBzC,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAW7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAMd,IAAI;IAiEZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAShC"}
|
|
@@ -9,6 +9,7 @@ export class TelemetryBatcher {
|
|
|
9
9
|
serverUrl;
|
|
10
10
|
apiKey;
|
|
11
11
|
sessionId;
|
|
12
|
+
metadata;
|
|
12
13
|
maxBatchSize;
|
|
13
14
|
redactKeys;
|
|
14
15
|
onTrigger;
|
|
@@ -17,6 +18,7 @@ export class TelemetryBatcher {
|
|
|
17
18
|
this.serverUrl = opts.serverUrl.replace(/\/$/, '');
|
|
18
19
|
this.apiKey = opts.apiKey;
|
|
19
20
|
this.sessionId = opts.sessionId;
|
|
21
|
+
this.metadata = opts.metadata;
|
|
20
22
|
this.maxBatchSize = opts.maxBatchSize ?? 50;
|
|
21
23
|
this.redactKeys = opts.redactKeys ?? [];
|
|
22
24
|
this.onTrigger = opts.onTrigger;
|
|
@@ -61,7 +63,7 @@ export class TelemetryBatcher {
|
|
|
61
63
|
// Stream the JSON body to avoid buffering large payloads (e.g. events
|
|
62
64
|
// with streamRaw can exceed 100 MB). Node.js fetch (undici) supports
|
|
63
65
|
// Readable as body and uses chunked Transfer-Encoding automatically.
|
|
64
|
-
const body = Readable.from(jsonStreamEvents(this.sessionId, batch));
|
|
66
|
+
const body = Readable.from(jsonStreamEvents(this.sessionId, batch, this.metadata));
|
|
65
67
|
const res = await getOriginalFetch()(url, {
|
|
66
68
|
method: 'POST',
|
|
67
69
|
headers,
|
|
@@ -122,8 +124,9 @@ export class TelemetryBatcher {
|
|
|
122
124
|
* giant string. Each event is serialized individually so the process never
|
|
123
125
|
* holds the full serialized body in memory at once.
|
|
124
126
|
*/
|
|
125
|
-
function* jsonStreamEvents(sessionId, events) {
|
|
126
|
-
|
|
127
|
+
function* jsonStreamEvents(sessionId, events, metadata) {
|
|
128
|
+
const metaPart = metadata ? `,"metadata":${JSON.stringify(metadata)}` : '';
|
|
129
|
+
yield `{"sessionId":${JSON.stringify(sessionId)}${metaPart},"events":[`;
|
|
127
130
|
for (let i = 0; i < events.length; i++) {
|
|
128
131
|
if (i > 0)
|
|
129
132
|
yield ',';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-batcher.js","sourceRoot":"","sources":["../src/telemetry-batcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"telemetry-batcher.js","sourceRoot":"","sources":["../src/telemetry-batcher.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/ci/trace-writer.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { mkdir, writeFile } from 'node:fs/promises'
|
|
2
|
+
import { mkdirSync, writeFileSync } from 'node:fs'
|
|
2
3
|
import { join } from 'node:path'
|
|
3
4
|
import { randomBytes } from 'node:crypto'
|
|
4
5
|
import type { WorkflowEvent } from '../capture/event.js'
|
|
@@ -47,18 +48,50 @@ export async function writeTraceToDisk(trace: DiskTrace, cwd?: string): Promise<
|
|
|
47
48
|
const filename = `${scrubbed.trace_id}.json`
|
|
48
49
|
const filepath = join(dir, filename)
|
|
49
50
|
await writeFile(filepath, JSON.stringify(scrubbed, null, 2), 'utf-8')
|
|
51
|
+
console.log(`[elasticdash] Trace written: ${filepath} (${trace.steps.length} steps)`)
|
|
50
52
|
} catch (err) {
|
|
51
53
|
console.warn(`[elasticdash] Failed to write trace file: ${err instanceof Error ? err.message : String(err)}`)
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
56
|
|
|
57
|
+
/**
|
|
58
|
+
* Synchronous write for use in process.on('exit') handlers where async is not possible.
|
|
59
|
+
*/
|
|
60
|
+
export function writeTraceToDiskSync(trace: DiskTrace, cwd?: string): void {
|
|
61
|
+
const dir = join(cwd ?? process.cwd(), TRACE_DIR)
|
|
62
|
+
try {
|
|
63
|
+
mkdirSync(dir, { recursive: true })
|
|
64
|
+
const scrubbed = scrubSecrets(trace) as DiskTrace
|
|
65
|
+
const filename = `${scrubbed.trace_id}.json`
|
|
66
|
+
const filepath = join(dir, filename)
|
|
67
|
+
writeFileSync(filepath, JSON.stringify(scrubbed, null, 2), 'utf-8')
|
|
68
|
+
} catch (err) {
|
|
69
|
+
// In sync exit handler, console.warn may not flush — best effort
|
|
70
|
+
try { console.warn(`[elasticdash] Failed to write trace file: ${err instanceof Error ? err.message : String(err)}`) } catch {}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
55
74
|
export async function maybeCaptureTrace(events: WorkflowEvent[], traceId?: string, cwd?: string): Promise<void> {
|
|
56
75
|
if (!isTraceCaptureEnabled()) return
|
|
76
|
+
if (events.length === 0) return
|
|
57
77
|
|
|
58
78
|
const filename = generateTraceFilename()
|
|
59
79
|
const id = filename.replace(/\.json$/, '')
|
|
60
80
|
const trace = workflowEventsToDiskTrace(events, traceId ?? id)
|
|
61
|
-
// Use the generated filename-style id as trace_id for disk traces
|
|
62
81
|
trace.trace_id = id
|
|
63
82
|
await writeTraceToDisk(trace, cwd)
|
|
64
83
|
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Synchronous version of maybeCaptureTrace for process exit handlers.
|
|
87
|
+
*/
|
|
88
|
+
export function maybeCaptureTraceSync(events: WorkflowEvent[], traceId?: string, cwd?: string): void {
|
|
89
|
+
if (!isTraceCaptureEnabled()) return
|
|
90
|
+
if (events.length === 0) return
|
|
91
|
+
|
|
92
|
+
const filename = generateTraceFilename()
|
|
93
|
+
const id = filename.replace(/\.json$/, '')
|
|
94
|
+
const trace = workflowEventsToDiskTrace(events, traceId ?? id)
|
|
95
|
+
trace.trace_id = id
|
|
96
|
+
writeTraceToDiskSync(trace, cwd)
|
|
97
|
+
}
|
|
@@ -316,7 +316,10 @@ export function pushTelemetryEvent(event: WorkflowEvent, explicitCtx?: { runId:
|
|
|
316
316
|
if (obsCtx.isRerun) {
|
|
317
317
|
(event as WorkflowEvent & { isRerun?: boolean }).isRerun = true
|
|
318
318
|
}
|
|
319
|
-
if (obsCtx.eventCollector)
|
|
319
|
+
if (obsCtx.eventCollector) {
|
|
320
|
+
obsCtx.eventCollector.push({ ...event })
|
|
321
|
+
debugLog(`[elasticdash] pushTelemetryEvent: collected event type=${event.type} name=${('name' in event ? event.name : '?')} (total: ${obsCtx.eventCollector.length})`)
|
|
322
|
+
}
|
|
320
323
|
obsCtx.batcher.enqueue(event)
|
|
321
324
|
return
|
|
322
325
|
}
|
package/src/observability.ts
CHANGED
|
@@ -14,7 +14,9 @@ import { connectToBackend, disconnectFromBackend } from './socket-connector.js'
|
|
|
14
14
|
import { executeTrigger } from './trigger-executor.js'
|
|
15
15
|
import { scanTools, scanWorkflows } from './execution/tool-runner.js'
|
|
16
16
|
import { debugLog } from './utils/debug.js'
|
|
17
|
-
import { maybeCaptureTrace } from './ci/trace-writer.js'
|
|
17
|
+
import { isTraceCaptureEnabled, maybeCaptureTrace, maybeCaptureTraceSync } from './ci/trace-writer.js'
|
|
18
|
+
import { detectGitInfo } from './ci/git-info.js'
|
|
19
|
+
import type { WorkflowEvent } from './capture/event.js'
|
|
18
20
|
|
|
19
21
|
export interface ObservabilityOptions {
|
|
20
22
|
serverUrl?: string
|
|
@@ -61,10 +63,20 @@ export function initObservability(options?: ObservabilityOptions): Observability
|
|
|
61
63
|
const workflows = scanWorkflows(cwd)
|
|
62
64
|
const defaultWorkflowName = workflows.length === 1 ? workflows[0].name : 'unknown-workflow'
|
|
63
65
|
|
|
66
|
+
// Detect git info for session metadata (branch, commit, CI provider)
|
|
67
|
+
// If detection fails, values are omitted — never store 'unknown' placeholders
|
|
68
|
+
let gitInfo: ReturnType<typeof detectGitInfo> = {}
|
|
69
|
+
try { gitInfo = detectGitInfo() } catch { /* not in a git repo — skip */ }
|
|
70
|
+
const sessionMetadata: Record<string, unknown> = {}
|
|
71
|
+
if (gitInfo.branch && gitInfo.branch !== 'unknown') sessionMetadata.branch = gitInfo.branch
|
|
72
|
+
if (gitInfo.commit && gitInfo.commit !== 'unknown') sessionMetadata.commit = gitInfo.commit
|
|
73
|
+
if (gitInfo.ciProvider && gitInfo.ciProvider !== 'local') sessionMetadata.ciProvider = gitInfo.ciProvider
|
|
74
|
+
|
|
64
75
|
const batcher = new TelemetryBatcher({
|
|
65
76
|
serverUrl,
|
|
66
77
|
apiKey,
|
|
67
78
|
sessionId,
|
|
79
|
+
metadata: Object.keys(sessionMetadata).length > 0 ? sessionMetadata : undefined,
|
|
68
80
|
batchIntervalMs: options?.batchIntervalMs,
|
|
69
81
|
maxBatchSize: options?.maxBatchSize,
|
|
70
82
|
redactKeys,
|
|
@@ -117,6 +129,18 @@ export function initObservability(options?: ObservabilityOptions): Observability
|
|
|
117
129
|
process.once('beforeExit', onExit)
|
|
118
130
|
process.once('SIGTERM', onExit)
|
|
119
131
|
process.once('SIGINT', onExit)
|
|
132
|
+
|
|
133
|
+
// Sync exit handler: last resort to flush any pending trace capture.
|
|
134
|
+
// process.on('exit') only allows synchronous code — the async handlers above
|
|
135
|
+
// may not complete before the process terminates (e.g. SIGINT on a dev server).
|
|
136
|
+
if (isTraceCaptureEnabled()) {
|
|
137
|
+
process.once('exit', () => {
|
|
138
|
+
const exitCtx = getObservabilityContext()
|
|
139
|
+
if (exitCtx?.eventCollector && exitCtx.eventCollector.length > 0) {
|
|
140
|
+
maybeCaptureTraceSync(exitCtx.eventCollector, exitCtx.traceId)
|
|
141
|
+
}
|
|
142
|
+
})
|
|
143
|
+
}
|
|
120
144
|
}
|
|
121
145
|
|
|
122
146
|
debugLog(`[elasticdash] Observability initialised — sessionId=${sessionId} workflow=${defaultWorkflowName} server=${serverUrl}`)
|
|
@@ -167,6 +191,13 @@ export async function shutdownObservability(): Promise<void> {
|
|
|
167
191
|
const ctx = getObservabilityContext()
|
|
168
192
|
if (!ctx) return
|
|
169
193
|
|
|
194
|
+
// Flush any pending trace capture before shutdown
|
|
195
|
+
if (ctx.eventCollector && ctx.eventCollector.length > 0) {
|
|
196
|
+
const events = ctx.eventCollector
|
|
197
|
+
ctx.eventCollector = undefined
|
|
198
|
+
await maybeCaptureTrace(events, ctx.traceId)
|
|
199
|
+
}
|
|
200
|
+
|
|
170
201
|
// Stop heartbeat
|
|
171
202
|
if (heartbeatTimer) {
|
|
172
203
|
clearInterval(heartbeatTimer)
|
|
@@ -217,11 +248,28 @@ export async function shutdownObservability(): Promise<void> {
|
|
|
217
248
|
export function startTrace(workflowName?: string): string {
|
|
218
249
|
const ctx = getObservabilityContext()
|
|
219
250
|
if (!ctx) throw new Error('[elasticdash] startTrace: observability not initialised')
|
|
251
|
+
|
|
252
|
+
// Flush any pending trace capture from a previous startTrace() that had no endTrace()
|
|
253
|
+
if (ctx.eventCollector && ctx.eventCollector.length > 0) {
|
|
254
|
+
debugLog(`[elasticdash] startTrace: flushing ${ctx.eventCollector.length} events from previous trace`)
|
|
255
|
+
const events = ctx.eventCollector
|
|
256
|
+
ctx.eventCollector = undefined
|
|
257
|
+
maybeCaptureTrace(events, ctx.traceId).catch((err) => {
|
|
258
|
+
debugLog(`[elasticdash] Failed to capture trace: ${err instanceof Error ? err.message : String(err)}`)
|
|
259
|
+
})
|
|
260
|
+
}
|
|
261
|
+
|
|
220
262
|
const resolvedName = workflowName || ctx.defaultWorkflowName
|
|
221
263
|
const timestamp = Date.now()
|
|
222
264
|
const shortId = randomUUID().slice(0, 8)
|
|
223
265
|
ctx.traceId = `${resolvedName}::${timestamp}::${shortId}`
|
|
224
266
|
|
|
267
|
+
// When ELASTICDASH_CAPTURE_TRACE=1, start collecting events for disk trace
|
|
268
|
+
if (isTraceCaptureEnabled()) {
|
|
269
|
+
debugLog(`[elasticdash] startTrace: trace capture enabled, collecting events for ${resolvedName}`)
|
|
270
|
+
ctx.eventCollector = []
|
|
271
|
+
}
|
|
272
|
+
|
|
225
273
|
// Emit a workflow event so the backend can discover the workflow name
|
|
226
274
|
// (same as wrapWorkflow, but without wrapping — for streaming handlers)
|
|
227
275
|
pushTelemetryEvent({
|
|
@@ -254,7 +302,19 @@ export function startTrace(workflowName?: string): string {
|
|
|
254
302
|
*/
|
|
255
303
|
export function endTrace(): void {
|
|
256
304
|
const ctx = getObservabilityContext()
|
|
305
|
+
debugLog(`[elasticdash] endTrace called, obsCtx=${!!ctx}, eventCollector=${ctx?.eventCollector?.length ?? 'none'}`)
|
|
257
306
|
if (!ctx) return
|
|
307
|
+
|
|
308
|
+
// Flush collected events to disk if trace capture is enabled
|
|
309
|
+
if (ctx.eventCollector && ctx.eventCollector.length > 0) {
|
|
310
|
+
debugLog(`[elasticdash] endTrace: flushing ${ctx.eventCollector.length} events to disk for traceId=${ctx.traceId}`)
|
|
311
|
+
const events = ctx.eventCollector
|
|
312
|
+
ctx.eventCollector = undefined
|
|
313
|
+
maybeCaptureTrace(events, ctx.traceId).catch((err) => {
|
|
314
|
+
debugLog(`[elasticdash] Failed to capture trace: ${err instanceof Error ? err.message : String(err)}`)
|
|
315
|
+
})
|
|
316
|
+
}
|
|
317
|
+
|
|
258
318
|
const timestamp = Date.now()
|
|
259
319
|
const shortId = randomUUID().slice(0, 8)
|
|
260
320
|
ctx.traceId = `${ctx.defaultWorkflowName}::${timestamp}::${shortId}`
|
package/src/telemetry-batcher.ts
CHANGED
|
@@ -39,6 +39,7 @@ export interface TelemetryBatcherOptions {
|
|
|
39
39
|
serverUrl: string
|
|
40
40
|
apiKey?: string
|
|
41
41
|
sessionId: string
|
|
42
|
+
metadata?: Record<string, unknown>
|
|
42
43
|
batchIntervalMs?: number
|
|
43
44
|
maxBatchSize?: number
|
|
44
45
|
redactKeys?: string[]
|
|
@@ -51,6 +52,7 @@ export class TelemetryBatcher {
|
|
|
51
52
|
private readonly serverUrl: string
|
|
52
53
|
private readonly apiKey: string | undefined
|
|
53
54
|
private readonly sessionId: string
|
|
55
|
+
private readonly metadata: Record<string, unknown> | undefined
|
|
54
56
|
private readonly maxBatchSize: number
|
|
55
57
|
private readonly redactKeys: string[]
|
|
56
58
|
private readonly onTrigger: ((trigger: TriggerSignal) => Promise<void>) | undefined
|
|
@@ -60,6 +62,7 @@ export class TelemetryBatcher {
|
|
|
60
62
|
this.serverUrl = opts.serverUrl.replace(/\/$/, '')
|
|
61
63
|
this.apiKey = opts.apiKey
|
|
62
64
|
this.sessionId = opts.sessionId
|
|
65
|
+
this.metadata = opts.metadata
|
|
63
66
|
this.maxBatchSize = opts.maxBatchSize ?? 50
|
|
64
67
|
this.redactKeys = opts.redactKeys ?? []
|
|
65
68
|
this.onTrigger = opts.onTrigger
|
|
@@ -106,7 +109,7 @@ export class TelemetryBatcher {
|
|
|
106
109
|
// Stream the JSON body to avoid buffering large payloads (e.g. events
|
|
107
110
|
// with streamRaw can exceed 100 MB). Node.js fetch (undici) supports
|
|
108
111
|
// Readable as body and uses chunked Transfer-Encoding automatically.
|
|
109
|
-
const body = Readable.from(jsonStreamEvents(this.sessionId, batch))
|
|
112
|
+
const body = Readable.from(jsonStreamEvents(this.sessionId, batch, this.metadata))
|
|
110
113
|
|
|
111
114
|
const res = await getOriginalFetch()(url, {
|
|
112
115
|
method: 'POST',
|
|
@@ -170,8 +173,9 @@ export class TelemetryBatcher {
|
|
|
170
173
|
* giant string. Each event is serialized individually so the process never
|
|
171
174
|
* holds the full serialized body in memory at once.
|
|
172
175
|
*/
|
|
173
|
-
function* jsonStreamEvents(sessionId: string, events: WorkflowEvent[]): Generator<string> {
|
|
174
|
-
|
|
176
|
+
function* jsonStreamEvents(sessionId: string, events: WorkflowEvent[], metadata?: Record<string, unknown>): Generator<string> {
|
|
177
|
+
const metaPart = metadata ? `,"metadata":${JSON.stringify(metadata)}` : ''
|
|
178
|
+
yield `{"sessionId":${JSON.stringify(sessionId)}${metaPart},"events":[`
|
|
175
179
|
for (let i = 0; i < events.length; i++) {
|
|
176
180
|
if (i > 0) yield ','
|
|
177
181
|
yield JSON.stringify(events[i])
|