@nodii/telemetry 0.21.0 → 0.22.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/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +17 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +29 -3
- package/dist/logger.js.map +1 -1
- package/dist/otlp-adapter.d.ts +17 -0
- package/dist/otlp-adapter.d.ts.map +1 -1
- package/dist/otlp-adapter.js +33 -1
- package/dist/otlp-adapter.js.map +1 -1
- package/dist/sdk-counters.d.ts.map +1 -1
- package/dist/sdk-counters.js +7 -0
- package/dist/sdk-counters.js.map +1 -1
- package/dist/tracer.d.ts.map +1 -1
- package/dist/tracer.js +90 -0
- package/dist/tracer.js.map +1 -1
- package/dist/worker-lite/index.d.ts +126 -0
- package/dist/worker-lite/index.d.ts.map +1 -0
- package/dist/worker-lite/index.js +241 -0
- package/dist/worker-lite/index.js.map +1 -0
- package/dist/worker-lite/otlp-http.d.ts +93 -0
- package/dist/worker-lite/otlp-http.d.ts.map +1 -0
- package/dist/worker-lite/otlp-http.js +179 -0
- package/dist/worker-lite/otlp-http.js.map +1 -0
- package/package.json +5 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { initTelemetry } from "./init.js";
|
|
2
|
-
export { ENV_UNKNOWN, forceFlush, getOtlpAdapterHandle, installOtlpAdapter, resolveEnvResourceValue, shutdownOtlpAdapter, } from "./otlp-adapter.js";
|
|
2
|
+
export { ENV_UNKNOWN, flushTelemetry, forceFlush, getOtlpAdapterHandle, installOtlpAdapter, resolveEnvResourceValue, shutdownOtlpAdapter, } from "./otlp-adapter.js";
|
|
3
3
|
export type { OtlpAdapterHandle, OtlpAdapterConfig } from "./otlp-adapter.js";
|
|
4
|
-
export { logger, createLogger } from "./logger.js";
|
|
4
|
+
export { logger, createLogger, writeStderrEnvelope } from "./logger.js";
|
|
5
5
|
export type { NodiiLogger, LoggerOptions, LogSink, ErrSerializer, } from "./logger.js";
|
|
6
6
|
export { tracer, withSpanAttributes, getSagaTracer } from "./tracer.js";
|
|
7
7
|
export { getActiveSpan } from "./active-span.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,WAAW,EACX,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
// agentInvocable, withSpanAttributes, getSagaTracer,
|
|
34
34
|
// type NodiiContext } from '@nodii/telemetry';
|
|
35
35
|
export { initTelemetry } from "./init.js";
|
|
36
|
-
export { ENV_UNKNOWN, forceFlush, getOtlpAdapterHandle, installOtlpAdapter, resolveEnvResourceValue, shutdownOtlpAdapter, } from "./otlp-adapter.js";
|
|
37
|
-
export { logger, createLogger } from "./logger.js";
|
|
36
|
+
export { ENV_UNKNOWN, flushTelemetry, forceFlush, getOtlpAdapterHandle, installOtlpAdapter, resolveEnvResourceValue, shutdownOtlpAdapter, } from "./otlp-adapter.js";
|
|
37
|
+
export { logger, createLogger, writeStderrEnvelope } from "./logger.js";
|
|
38
38
|
export { tracer, withSpanAttributes, getSagaTracer } from "./tracer.js";
|
|
39
39
|
export { getActiveSpan } from "./active-span.js";
|
|
40
40
|
export { forensicParentValue, parseTraceparent, resolveSpanParent, } from "./traceparent.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,EAAE;AACF,0EAA0E;AAC1E,EAAE;AACF,0EAA0E;AAC1E,yEAAyE;AACzE,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,wEAAwE;AACxE,0EAA0E;AAC1E,mEAAmE;AACnE,0EAA0E;AAC1E,wEAAwE;AACxE,oEAAoE;AACpE,0EAA0E;AAC1E,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,4EAA4E;AAC5E,wEAAwE;AACxE,EAAE;AACF,wEAAwE;AACxE,oEAAoE;AACpE,uEAAuE;AACvE,8DAA8D;AAC9D,mDAAmD;AACnD,EAAE;AACF,oEAAoE;AACpE,gBAAgB;AAChB,EAAE;AACF,oEAAoE;AACpE,gEAAgE;AAChE,0DAA0D;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,WAAW,EACX,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,EAAE;AACF,0EAA0E;AAC1E,EAAE;AACF,0EAA0E;AAC1E,yEAAyE;AACzE,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,wEAAwE;AACxE,0EAA0E;AAC1E,mEAAmE;AACnE,0EAA0E;AAC1E,wEAAwE;AACxE,oEAAoE;AACpE,0EAA0E;AAC1E,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,4EAA4E;AAC5E,wEAAwE;AACxE,EAAE;AACF,wEAAwE;AACxE,oEAAoE;AACpE,uEAAuE;AACvE,8DAA8D;AAC9D,mDAAmD;AACnD,EAAE;AACF,oEAAoE;AACpE,gBAAgB;AAChB,EAAE;AACF,oEAAoE;AACpE,gEAAgE;AAChE,0DAA0D;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,WAAW,EACX,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAOxE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAWjD,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAS5E,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,gCAAgC,EAChC,yBAAyB,EACzB,cAAc,EACd,eAAe,EACf,8BAA8B,EAC9B,KAAK,EACL,iBAAiB,EACjB,cAAc,GACf,MAAM,YAAY,CAAC;AAYpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,UAAU,EACV,cAAc,EACd,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AA0BrD,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,YAAY,CAAC"}
|
package/dist/logger.d.ts
CHANGED
|
@@ -10,6 +10,23 @@ export type LogSink = (envelope: LogEnvelope, fields: Record<string, unknown>) =
|
|
|
10
10
|
export declare function _setLogSink(s: LogSink): void;
|
|
11
11
|
/** Test-only restore. */
|
|
12
12
|
export declare function _resetLogSinkForTests(): void;
|
|
13
|
+
/**
|
|
14
|
+
* Synchronous stderr write for a formed `error`/`warn` envelope (drift
|
|
15
|
+
* b12aff29). Uses `process.stderr.write` — an fd-2 write that is NOT
|
|
16
|
+
* intercepted by the OTLP logs bridge and completes BEFORE `process.exit`,
|
|
17
|
+
* so a FATAL boot error logged via `logger.error` immediately before
|
|
18
|
+
* `process.exit(1)` is ALWAYS visible in CloudWatch/stderr even when the
|
|
19
|
+
* OTLP export queue has not (and cannot) flush.
|
|
20
|
+
*
|
|
21
|
+
* The default (non-OTLP) sink already wrote error/warn to stderr; when the
|
|
22
|
+
* OTLP adapter swaps the module-global sink via {@link _setLogSink} it
|
|
23
|
+
* REPLACES that behavior — the batched OTLP `LoggerProvider.emit` is async
|
|
24
|
+
* and never drains at exit, so the line vanished. The OTLP sink calls this
|
|
25
|
+
* to TEE error/warn to stderr in addition to enqueuing to OTLP, restoring
|
|
26
|
+
* the guarantee that the swap silently removed. Best-effort: a failure to
|
|
27
|
+
* write to stderr (closed fd) must never throw out of the log path.
|
|
28
|
+
*/
|
|
29
|
+
export declare function writeStderrEnvelope(envelope: LogEnvelope, fields: Record<string, unknown>): void;
|
|
13
30
|
/**
|
|
14
31
|
* Serializes an Error into a plain record for structured logging. The
|
|
15
32
|
* factory accepts a custom one (`errSerializer`) so a service can match
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAmBA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,YAAY,CAAC;AAExD,0EAA0E;AAC1E,MAAM,MAAM,OAAO,GAAG,CACpB,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,IAAI,CAAC;AAIV;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAE5C;AAED,yBAAyB;AACzB,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAmBA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,YAAY,CAAC;AAExD,0EAA0E;AAC1E,MAAM,MAAM,OAAO,GAAG,CACpB,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,IAAI,CAAC;AAIV;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAE5C;AAED,yBAAyB;AACzB,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAQN;AAeD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAMpE;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,uDAAuD;IACvD,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;CACxC;AAED,iEAAiE;AACjE,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3D,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1D,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1D,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3D;;;;OAIG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC;IACtD;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAAC;CAC/C;AA6GD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,WAAW,CAOrE;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,WAA4B,CAAC"}
|
package/dist/logger.js
CHANGED
|
@@ -31,13 +31,39 @@ export function _setLogSink(s) {
|
|
|
31
31
|
export function _resetLogSinkForTests() {
|
|
32
32
|
sink = defaultJsonSink;
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Synchronous stderr write for a formed `error`/`warn` envelope (drift
|
|
36
|
+
* b12aff29). Uses `process.stderr.write` — an fd-2 write that is NOT
|
|
37
|
+
* intercepted by the OTLP logs bridge and completes BEFORE `process.exit`,
|
|
38
|
+
* so a FATAL boot error logged via `logger.error` immediately before
|
|
39
|
+
* `process.exit(1)` is ALWAYS visible in CloudWatch/stderr even when the
|
|
40
|
+
* OTLP export queue has not (and cannot) flush.
|
|
41
|
+
*
|
|
42
|
+
* The default (non-OTLP) sink already wrote error/warn to stderr; when the
|
|
43
|
+
* OTLP adapter swaps the module-global sink via {@link _setLogSink} it
|
|
44
|
+
* REPLACES that behavior — the batched OTLP `LoggerProvider.emit` is async
|
|
45
|
+
* and never drains at exit, so the line vanished. The OTLP sink calls this
|
|
46
|
+
* to TEE error/warn to stderr in addition to enqueuing to OTLP, restoring
|
|
47
|
+
* the guarantee that the swap silently removed. Best-effort: a failure to
|
|
48
|
+
* write to stderr (closed fd) must never throw out of the log path.
|
|
49
|
+
*/
|
|
50
|
+
export function writeStderrEnvelope(envelope, fields) {
|
|
51
|
+
if (envelope.level !== "error" && envelope.level !== "warn")
|
|
52
|
+
return;
|
|
53
|
+
try {
|
|
54
|
+
const line = JSON.stringify({ ...envelope, ...fields });
|
|
55
|
+
process.stderr.write(`${line}\n`);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
/* stderr unavailable (closed fd) — best-effort, never throw at exit */
|
|
59
|
+
}
|
|
60
|
+
}
|
|
34
61
|
function defaultJsonSink(envelope, fields) {
|
|
35
|
-
const line = JSON.stringify({ ...envelope, ...fields });
|
|
36
62
|
if (envelope.level === "error" || envelope.level === "warn") {
|
|
37
|
-
|
|
38
|
-
process.stderr.write(`${line}\n`);
|
|
63
|
+
writeStderrEnvelope(envelope, fields);
|
|
39
64
|
}
|
|
40
65
|
else {
|
|
66
|
+
const line = JSON.stringify({ ...envelope, ...fields });
|
|
41
67
|
// eslint-disable-next-line no-console
|
|
42
68
|
process.stdout.write(`${line}\n`);
|
|
43
69
|
}
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,EAAE;AACF,OAAO;AACP,sDAAsD;AACtD,EAAE;AACF,qEAAqE;AACrE,qEAAqE;AACrE,gEAAgE;AAChE,qEAAqE;AACrE,wCAAwC;AACxC,qEAAqE;AACrE,EAAE;AACF,oEAAoE;AACpE,qEAAqE;AACrE,wCAAwC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AASlD,IAAI,IAAI,GAAY,eAAe,CAAC;AAEpC;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,CAAU;IACpC,IAAI,GAAG,CAAC,CAAC;AACX,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,qBAAqB;IACnC,IAAI,GAAG,eAAe,CAAC;AACzB,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/otlp-adapter.d.ts
CHANGED
|
@@ -63,6 +63,23 @@ export interface OtlpAdapterHandle {
|
|
|
63
63
|
export declare function installOtlpAdapter(cfg: OtlpAdapterConfig): OtlpAdapterHandle;
|
|
64
64
|
/** Force-flushes the active OTLP pipelines. No-op when not installed. */
|
|
65
65
|
export declare function forceFlush(): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Drain the OTLP export queues (spans + logs + metrics) before the process
|
|
68
|
+
* exits (drift b12aff29). A boot entrypoint's `main().catch(...)` — or any
|
|
69
|
+
* intentional shutdown — should `await flushTelemetry()` BEFORE
|
|
70
|
+
* `process.exit`, so batched-but-unexported signals reach the collector
|
|
71
|
+
* instead of being dropped when the event loop is torn down.
|
|
72
|
+
*
|
|
73
|
+
* This is the async-drain half of the exit-safety contract; the sync half
|
|
74
|
+
* (a FATAL `logger.error` reaching stderr even if this flush never runs or
|
|
75
|
+
* the collector is down) is guaranteed independently by the stderr tee in
|
|
76
|
+
* the OTLP log sink — see {@link writeStderrEnvelope}. Use both: tee makes
|
|
77
|
+
* the fatal line visible NOW; flush makes the full telemetry tail durable.
|
|
78
|
+
*
|
|
79
|
+
* Alias of {@link forceFlush} under the name the consumers requested; no-op
|
|
80
|
+
* when the OTLP adapter is not installed (disableOtlp / no endpoint).
|
|
81
|
+
*/
|
|
82
|
+
export declare function flushTelemetry(): Promise<void>;
|
|
66
83
|
/** Shuts down the OTLP pipelines. No-op when not installed. */
|
|
67
84
|
export declare function shutdownOtlpAdapter(): Promise<void>;
|
|
68
85
|
/** For tests + introspection. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otlp-adapter.d.ts","sourceRoot":"","sources":["../src/otlp-adapter.ts"],"names":[],"mappings":"AAiCA,OAAO,EAEL,cAAc,EACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,aAAa,EAEd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAkBvC,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EAGrB,MAAM,cAAc,CAAC;AAOtB,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EAEnB,cAAc,EACd,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAC7B,MAAM,CAER;AAED,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,mBAAmB,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IAC9D;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC;CAC3D;AAED,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,mEAAmE;IACnE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,gDAAgD;IAChD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,2DAA2D;IAC3D,cAAc,EAAE,kBAAkB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAID;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"otlp-adapter.d.ts","sourceRoot":"","sources":["../src/otlp-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/otlp-adapter.js
CHANGED
|
@@ -29,7 +29,7 @@ import { HttpInstrumentation } from "@opentelemetry/instrumentation-http";
|
|
|
29
29
|
import { GrpcInstrumentation } from "@opentelemetry/instrumentation-grpc";
|
|
30
30
|
import { PgInstrumentation } from "@opentelemetry/instrumentation-pg";
|
|
31
31
|
import { ATTR_DEPLOYMENT_ENVIRONMENT_NAME, ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION, } from "@opentelemetry/semantic-conventions";
|
|
32
|
-
import { _setLogSink } from "./logger.js";
|
|
32
|
+
import { _setLogSink, writeStderrEnvelope } from "./logger.js";
|
|
33
33
|
import { isSecureOtlpChannel, resolveOtlpExporterCredentials, } from "./otlp-auth.js";
|
|
34
34
|
import { _setMetricsBackend, } from "./metrics.js";
|
|
35
35
|
import { incSdkCounter } from "./sdk-counters.js";
|
|
@@ -248,6 +248,17 @@ export function installOtlpAdapter(cfg) {
|
|
|
248
248
|
// ── Wire LogSink to OTel logger.
|
|
249
249
|
const otelLogger = loggerProvider.getLogger(cfg.serviceName);
|
|
250
250
|
const logSink = (envelope, fields) => {
|
|
251
|
+
// TEE error/warn to stderr SYNCHRONOUSLY, BEFORE the async OTLP enqueue
|
|
252
|
+
// (drift b12aff29). `loggerProvider.emit` below routes into the
|
|
253
|
+
// BatchLogRecordProcessor (scheduledDelayMillis: 1000) — an async queue
|
|
254
|
+
// that does NOT drain on `process.exit`, so a FATAL boot error logged via
|
|
255
|
+
// `logger.error` immediately before `process.exit(1)` never reaches the
|
|
256
|
+
// collector NOR stderr once this sink replaces the default stderr sink.
|
|
257
|
+
// Restoring the synchronous fd-2 write here guarantees the fatal line is
|
|
258
|
+
// ALWAYS visible in CloudWatch/stderr independent of OTLP export state
|
|
259
|
+
// (queue full, collector down, exporter mid-flight, or exit before flush).
|
|
260
|
+
// It runs first so a throw in the OTLP path below cannot suppress it.
|
|
261
|
+
writeStderrEnvelope(envelope, fields);
|
|
251
262
|
try {
|
|
252
263
|
const traceCtx = currentTraceCtx();
|
|
253
264
|
const merged = {
|
|
@@ -363,6 +374,27 @@ export async function forceFlush() {
|
|
|
363
374
|
return;
|
|
364
375
|
await activeHandle.forceFlush();
|
|
365
376
|
}
|
|
377
|
+
/**
|
|
378
|
+
* Drain the OTLP export queues (spans + logs + metrics) before the process
|
|
379
|
+
* exits (drift b12aff29). A boot entrypoint's `main().catch(...)` — or any
|
|
380
|
+
* intentional shutdown — should `await flushTelemetry()` BEFORE
|
|
381
|
+
* `process.exit`, so batched-but-unexported signals reach the collector
|
|
382
|
+
* instead of being dropped when the event loop is torn down.
|
|
383
|
+
*
|
|
384
|
+
* This is the async-drain half of the exit-safety contract; the sync half
|
|
385
|
+
* (a FATAL `logger.error` reaching stderr even if this flush never runs or
|
|
386
|
+
* the collector is down) is guaranteed independently by the stderr tee in
|
|
387
|
+
* the OTLP log sink — see {@link writeStderrEnvelope}. Use both: tee makes
|
|
388
|
+
* the fatal line visible NOW; flush makes the full telemetry tail durable.
|
|
389
|
+
*
|
|
390
|
+
* Alias of {@link forceFlush} under the name the consumers requested; no-op
|
|
391
|
+
* when the OTLP adapter is not installed (disableOtlp / no endpoint).
|
|
392
|
+
*/
|
|
393
|
+
export async function flushTelemetry() {
|
|
394
|
+
if (!activeHandle)
|
|
395
|
+
return;
|
|
396
|
+
await activeHandle.forceFlush();
|
|
397
|
+
}
|
|
366
398
|
/** Shuts down the OTLP pipelines. No-op when not installed. */
|
|
367
399
|
export async function shutdownOtlpAdapter() {
|
|
368
400
|
if (!activeHandle)
|
package/dist/otlp-adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otlp-adapter.js","sourceRoot":"","sources":["../src/otlp-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"otlp-adapter.js","sourceRoot":"","sources":["../src/otlp-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-counters.d.ts","sourceRoot":"","sources":["../src/sdk-counters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sdk-counters.d.ts","sourceRoot":"","sources":["../src/sdk-counters.ts"],"names":[],"mappings":"AAoBA,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEvC,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAYD,4DAA4D;AAC5D,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,QAAa,EACrB,CAAC,SAAI,GACJ,IAAI,CAQN;AAED,yDAAyD;AACzD,wBAAgB,mBAAmB,IAAI,SAAS,YAAY,EAAE,CAM7D;AAED,2DAA2D;AAC3D,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
|
package/dist/sdk-counters.js
CHANGED
|
@@ -10,6 +10,13 @@
|
|
|
10
10
|
// - `telemetry.sdk.trace_propagation_missing_total` (§ 5.9)
|
|
11
11
|
// - `telemetry.sdk.env_unknown_total` (env resource attr empty at boot;
|
|
12
12
|
// request 63337357 — mirrors the D60 tenant_id never-omit-silently rule)
|
|
13
|
+
// - `telemetry.sdk.span_attr_backfilled_total{attr}` (D26 §4.2 onEnd
|
|
14
|
+
// backfill — a mandatory span attr filled from the ALS at span END
|
|
15
|
+
// because the span opened before the context interceptor ran;
|
|
16
|
+
// request 9b16429d)
|
|
17
|
+
// - `telemetry.sdk.span_context_missing_total{attr}` (D60 §7.2 — a
|
|
18
|
+
// mandatory span attr was STILL absent at end, `__unknown__`-substituted;
|
|
19
|
+
// request 9b16429d — mirrors the env_unknown_total never-omit rule)
|
|
13
20
|
const points = new Map();
|
|
14
21
|
function keyFor(name, labels) {
|
|
15
22
|
const labelStr = Object.entries(labels)
|
package/dist/sdk-counters.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-counters.js","sourceRoot":"","sources":["../src/sdk-counters.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,qEAAqE;AACrE,sEAAsE;AACtE,kDAAkD;AAClD,EAAE;AACF,0BAA0B;AAC1B,6EAA6E;AAC7E,uEAAuE;AACvE,mEAAmE;AACnE,8DAA8D;AAC9D,0EAA0E;AAC1E,6EAA6E;
|
|
1
|
+
{"version":3,"file":"sdk-counters.js","sourceRoot":"","sources":["../src/sdk-counters.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,qEAAqE;AACrE,sEAAsE;AACtE,kDAAkD;AAClD,EAAE;AACF,0BAA0B;AAC1B,6EAA6E;AAC7E,uEAAuE;AACvE,mEAAmE;AACnE,8DAA8D;AAC9D,0EAA0E;AAC1E,6EAA6E;AAC7E,uEAAuE;AACvE,uEAAuE;AACvE,kEAAkE;AAClE,wBAAwB;AACxB,qEAAqE;AACrE,8EAA8E;AAC9E,wEAAwE;AAUxE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAC;AAE/C,SAAS,MAAM,CAAC,IAAY,EAAE,MAAgB;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;SAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,SAAmB,EAAE,EACrB,CAAC,GAAG,CAAC;IAEL,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,mBAAmB;IACjC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE;QACvB,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC,CAAC,CAAC;AACN,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,yBAAyB;IACvC,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC"}
|
package/dist/tracer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../src/tracer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../src/tracer.ts"],"names":[],"mappings":"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"}
|
package/dist/tracer.js
CHANGED
|
@@ -10,6 +10,27 @@
|
|
|
10
10
|
// - 4 KB per-value cap on attributes (truncates with `_truncated`
|
|
11
11
|
// marker). PII redaction applied to attribute values in `onEnd`
|
|
12
12
|
// (D26 + D15).
|
|
13
|
+
//
|
|
14
|
+
// onEnd mandatory-attr BACKFILL (request 9b16429d / D26 §4.2). The
|
|
15
|
+
// start-time stamp above only lands the mandatory trio when a
|
|
16
|
+
// `NodiiContext` is already active at span START. But SERVER/RPC spans
|
|
17
|
+
// routinely OPEN before the context interceptor populates the ALS —
|
|
18
|
+
// `withTracingSpan` composes OUTSIDE the `tenantContext` interceptor in
|
|
19
|
+
// the gRPC server stack, so the ingress span starts with an EMPTY
|
|
20
|
+
// NodiiContext and would export with 0% tenant attribution (while
|
|
21
|
+
// `db.rls.tx` spans opened inside the interceptor carried 100%). Per
|
|
22
|
+
// 15-telemetry §4.2 (D26) the mandatory `{tenant_id, request_id,
|
|
23
|
+
// intent_id}` envelope is required on EVERY span, ordering-independent.
|
|
24
|
+
// So at onEnd — when the interceptor HAS populated the ALS — we re-read
|
|
25
|
+
// the context and BACKFILL any mandatory attr that is still missing.
|
|
26
|
+
// Start-time value wins (never overwrite a present attr). If a mandatory
|
|
27
|
+
// attr is STILL absent at end (no context ever landed — a raw cron/script
|
|
28
|
+
// span), we follow the D60 §7.2 never-omit-silently rule: substitute the
|
|
29
|
+
// `__unknown__` sentinel + bump a counter rather than exporting a span
|
|
30
|
+
// with the mandatory key silently missing. `intent_id: null` is a
|
|
31
|
+
// LEGITIMATE doctrine value (NodiiContext.intent_id is `string | null`,
|
|
32
|
+
// "set when an intent is active"), so a null intent_id is preserved as
|
|
33
|
+
// `null` — NOT substituted.
|
|
13
34
|
// - Status mapping (D27): if `recordException` ran or any error was
|
|
14
35
|
// attached, the span ends with status ERROR; otherwise UNSET.
|
|
15
36
|
// - `getSagaTracer()` ships as a tactical hold per D149; sunsets at
|
|
@@ -33,6 +54,70 @@ export function _resetSpanEmitterForTests() {
|
|
|
33
54
|
emitter = noopEmitter;
|
|
34
55
|
}
|
|
35
56
|
const ATTR_VALUE_CAP_BYTES = 4 * 1024;
|
|
57
|
+
/**
|
|
58
|
+
* D26 §4.2 mandatory span-attribute envelope — the three keys required on
|
|
59
|
+
* EVERY exported span. Kept as a module constant so the start-time stamp
|
|
60
|
+
* and the onEnd backfill agree on the exact set.
|
|
61
|
+
*/
|
|
62
|
+
const MANDATORY_SPAN_ATTRS = ["tenant_id", "request_id", "intent_id"];
|
|
63
|
+
/**
|
|
64
|
+
* D60 §7.2 never-omit-silently sentinel. When a mandatory attr is genuinely
|
|
65
|
+
* absent (no `NodiiContext` ever landed for this span), the span still
|
|
66
|
+
* carries the key with this value rather than dropping it — matching the
|
|
67
|
+
* resource-attribute enforcement so the collector never sees a mandatory
|
|
68
|
+
* key silently missing.
|
|
69
|
+
*/
|
|
70
|
+
const UNKNOWN_ATTR_SENTINEL = "__unknown__";
|
|
71
|
+
/**
|
|
72
|
+
* onEnd mandatory-attr backfill (request 9b16429d / D26 §4.2). Reads the
|
|
73
|
+
* ALS `NodiiContext` AGAIN at span end (when a late-composing context
|
|
74
|
+
* interceptor has populated it) and fills any mandatory attr the span
|
|
75
|
+
* opened without. Start-time value wins — a key already present is left
|
|
76
|
+
* untouched, including a start-time `intent_id: null`.
|
|
77
|
+
*
|
|
78
|
+
* O(1): at most three key lookups + one `getContext()` (a single ALS
|
|
79
|
+
* store read). No allocation storms — mutates the existing attribute map
|
|
80
|
+
* in place, allocates nothing on the hot path where all three are already
|
|
81
|
+
* present (the common case: context active at start).
|
|
82
|
+
*/
|
|
83
|
+
function backfillMandatoryAttrs(attrs) {
|
|
84
|
+
// Fast path: all three keys already present (context was active at
|
|
85
|
+
// start) → nothing to do, no ALS read, no allocation.
|
|
86
|
+
let anyMissing = false;
|
|
87
|
+
for (const k of MANDATORY_SPAN_ATTRS) {
|
|
88
|
+
if (!(k in attrs)) {
|
|
89
|
+
anyMissing = true;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (!anyMissing)
|
|
94
|
+
return;
|
|
95
|
+
const ctx = getContext();
|
|
96
|
+
for (const k of MANDATORY_SPAN_ATTRS) {
|
|
97
|
+
if (k in attrs)
|
|
98
|
+
continue; // start-time value wins
|
|
99
|
+
if (ctx) {
|
|
100
|
+
// Context landed by end — backfill from it. tenant_id/request_id are
|
|
101
|
+
// non-null strings when a context is present; intent_id may be null
|
|
102
|
+
// (a legitimate "no active intent" value), which we preserve as null.
|
|
103
|
+
attrs[k] = ctx[k];
|
|
104
|
+
incSdkCounter("telemetry.sdk.span_attr_backfilled_total", { attr: k });
|
|
105
|
+
}
|
|
106
|
+
else if (k === "intent_id") {
|
|
107
|
+
// No context at all → intent is legitimately absent. `null` is the
|
|
108
|
+
// canonical NodiiContext value for "no active intent"; carry it as
|
|
109
|
+
// null rather than the __unknown__ sentinel.
|
|
110
|
+
attrs[k] = null;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
// D60 §7.2 never-omit-silently: a genuinely-absent mandatory key
|
|
114
|
+
// (tenant_id / request_id, no context ever) is substituted with the
|
|
115
|
+
// sentinel + counted, never dropped.
|
|
116
|
+
attrs[k] = UNKNOWN_ATTR_SENTINEL;
|
|
117
|
+
incSdkCounter("telemetry.sdk.span_context_missing_total", { attr: k });
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
36
121
|
function capValue(v) {
|
|
37
122
|
if (typeof v !== "string")
|
|
38
123
|
return v;
|
|
@@ -183,6 +268,11 @@ async function span(name, fn, opts) {
|
|
|
183
268
|
record.status = "ERROR";
|
|
184
269
|
}
|
|
185
270
|
record.end_ns = process.hrtime.bigint();
|
|
271
|
+
// D26 §4.2 onEnd backfill (request 9b16429d): fill any mandatory
|
|
272
|
+
// {tenant_id, request_id, intent_id} the span opened WITHOUT, now
|
|
273
|
+
// that a late-composing context interceptor has populated the ALS.
|
|
274
|
+
// Runs BEFORE redaction so backfilled values are redacted too.
|
|
275
|
+
backfillMandatoryAttrs(record.attributes);
|
|
186
276
|
// D26 onEnd: PII redaction over attribute values. Fail-closed: if
|
|
187
277
|
// redaction throws, drop the span by NOT emitting + bump the
|
|
188
278
|
// counter. (We still pop the stack regardless.)
|
package/dist/tracer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../src/tracer.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,+DAA+D;AAC/D,qEAAqE;AACrE,4BAA4B;AAC5B,EAAE;AACF,2BAA2B;AAC3B,uEAAuE;AACvE,sEAAsE;AACtE,sCAAsC;AACtC,oEAAoE;AACpE,oEAAoE;AACpE,mBAAmB;AACnB,sEAAsE;AACtE,kEAAkE;AAClE,sEAAsE;AACtE,cAAc;AAEd,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAGlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAmEnC,MAAM,WAAW,GAAgB;IAC/B,IAAI;QACF,2BAA2B;IAC7B,CAAC;CACF,CAAC;AACF,IAAI,OAAO,GAAgB,WAAW,CAAC;AAEvC,MAAM,UAAU,eAAe,CAAC,CAAc;IAC5C,OAAO,GAAG,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,GAAG,WAAW,CAAC;AACxB,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC;AAEtC,SAAS,QAAQ,CAAC,CAAU;IAC1B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,oBAAoB;QAAE,OAAO,CAAC,CAAC;IACnE,8CAA8C;IAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC;SACrC,QAAQ,CAAC,CAAC,EAAE,oBAAoB,CAAC;SACjC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,GAAG,SAAS,mBAAmB,CAAC;AACzC,CAAC;AAED,SAAS,aAAa,CACpB,KAA8B;IAE9B,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iFAAiF;AACjF,MAAM,WAAW,GAAiB,EAAE,CAAC;AAErC,yEAAyE;AACzE,oBAAoB,CAAC,GAAG,EAAE;IACxB,MAAM,GAAG,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,KAAK,UAAU,IAAI,CACjB,IAAY,EACZ,EAAkC,EAClC,IAAkB;IAElB,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAExD,gEAAgE;IAChE,uEAAuE;IACvE,wEAAwE;IACxE,qEAAqE;IACrE,IAAI,OAAO,GAAgC,IAAI,CAAC;IAChD,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,gBAAgB,GAAG,OAAO,KAAK,IAAI,CAAC;IACtC,CAAC;IAED,uEAAuE;IACvE,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,OAAO,CAAC,OAAO;QACjB,CAAC,CAAC,WAAW;YACX,CAAC,CAAC,WAAW,CAAC,QAAQ;YACtB,CAAC,CAAC,UAAU,EAAE,CAAC;IACnB,8EAA8E;IAC9E,MAAM,YAAY,GAAG,OAAO;QAC1B,CAAC,CAAC,OAAO,CAAC,MAAM;QAChB,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAExC,mEAAmE;IACnE,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,MAAM,GAAe;QACzB,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,YAAY;QAC5B,IAAI;QACJ,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,UAAU;QAC9B,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,EAAE;QACV,UAAU,EAAE;YACV,uEAAuE;YACvE,2EAA2E;YAC3E,2EAA2E;YAC3E,2EAA2E;YAC3E,8DAA8D;YAC9D,sEAAsE;YACtE,mBAAmB,EACjB,GAAG,EAAE,UAAU,KAAK,OAAO,IAAI,GAAG,EAAE,UAAU,KAAK,QAAQ;gBACzD,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,UAAU;YAChB,GAAG,CAAC,GAAG;gBACL,CAAC,CAAC;oBACE,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;iBACzB;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,iEAAiE;YACjE,kEAAkE;YAClE,GAAG,CAAC,gBAAgB,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS;gBAChD,CAAC,CAAC;oBACE,yCAAyC,EAAE,QAAQ,CACjD,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CACjC;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D;QACD,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,EAAE;KACX,CAAC;IACF,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,MAAM,MAAM,GAAS;QACnB,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,MAAM;QACf,YAAY,CAAC,GAAG,EAAE,KAAK;YACrB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,aAAa,CAAC,KAAK;YACjB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,QAAQ,CAAC,SAAS,EAAE,UAAU;YAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;gBAC9B,UAAU;aACX,CAAC,CAAC;QACL,CAAC;QACD,eAAe,CAAC,GAAG;YACjB,iBAAiB,GAAG,IAAI,CAAC;YACzB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;gBAC9B,UAAU,EAAE;oBACV,mBAAmB,EAAE,QAAQ,CAAC,OAAO,CAAC;oBACtC,sBAAsB,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC5D;aACF,CAAC,CAAC;QACL,CAAC;QACD,SAAS,CAAC,MAAM,EAAE,OAAO;YACvB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACvB,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC;QAClC,CAAC;KACF,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;YAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;QACxB,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,IAAI,iBAAiB,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACnD,+CAA+C;YAC/C,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;QAC1B,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACxC,kEAAkE;QAClE,6DAA6D;QAC7D,gDAAgD;QAChD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,uCAAuC,EAAE;gBACrD,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC,CAAC;QACL,CAAC;QACD,WAAW,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,UAAU;IACjB,qEAAqE;IACrE,uCAAuC;IACvC,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,SAAS;IAChB,mEAAmE;IACnE,oDAAoD;IACpD,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,SAAS,GAA8B,EAAE,CAAC;AAEhD,SAAS,kBAAkB,CACzB,KAA8B,EAC9B,EAAwB;IAExB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa;IACpB,OAAO;QACL,IAAI,CACF,IAAY,EACZ,EAAkC,EAClC,IAA+C;YAE/C,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE;gBACpB,IAAI,EAAE,UAAU;gBAChB,UAAU,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE;aACxE,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,yBAAyB;IACvC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACvB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI;CACI,CAAC;AAEX,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../src/tracer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { type RedactionConfig } from "../redaction.js";
|
|
2
|
+
import type { ActorType } from "../types.js";
|
|
3
|
+
import { type AttrValue, type OtlpResource } from "./otlp-http.js";
|
|
4
|
+
export type { AttrValue } from "./otlp-http.js";
|
|
5
|
+
export type { RedactionConfig } from "../redaction.js";
|
|
6
|
+
/**
|
|
7
|
+
* The explicit per-request context threaded into each emit — the workerd-safe
|
|
8
|
+
* analogue of the Node `NodiiContext` (15-telemetry § 6.2 / D41). The Workers
|
|
9
|
+
* `fetch` handler builds one per request (from inbound headers + auth) and
|
|
10
|
+
* passes it to every `log.*` / `counter.inc` call. All fields optional so a
|
|
11
|
+
* pre-context emit (cold boot / unauthenticated probe) still emits — the
|
|
12
|
+
* envelope substitutes empty-string `tenant_id`/`request_id` exactly as the
|
|
13
|
+
* Node logger does when no context is active.
|
|
14
|
+
*/
|
|
15
|
+
export interface WorkerContext {
|
|
16
|
+
/** Bare `tenant_id` per D20. */
|
|
17
|
+
tenant_id?: string;
|
|
18
|
+
user_id?: string | null;
|
|
19
|
+
actor_type?: ActorType;
|
|
20
|
+
on_behalf_of?: string | null;
|
|
21
|
+
request_id?: string;
|
|
22
|
+
intent_id?: string | null;
|
|
23
|
+
/** Active trace id (hex), if a trace context was propagated in. */
|
|
24
|
+
trace_id?: string | null;
|
|
25
|
+
/** Active span id (hex), if a trace context was propagated in. */
|
|
26
|
+
span_id?: string | null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The `fetch` signature the adapter POSTs OTLP/HTTP with. Defaults to the
|
|
30
|
+
* runtime-global `fetch` (present on workerd + Bun + Node ≥18). Injectable so
|
|
31
|
+
* tests capture the request WITHOUT a live collector (R1 — a real capturing
|
|
32
|
+
* fake, not a Noop default).
|
|
33
|
+
*/
|
|
34
|
+
export type FetchLike = (input: string, init: {
|
|
35
|
+
method: string;
|
|
36
|
+
headers: Record<string, string>;
|
|
37
|
+
body: string;
|
|
38
|
+
}) => Promise<{
|
|
39
|
+
ok: boolean;
|
|
40
|
+
status: number;
|
|
41
|
+
}>;
|
|
42
|
+
/** Config for {@link createWorkerTelemetry}. All values are passed in. */
|
|
43
|
+
export interface WorkerTelemetryConfig {
|
|
44
|
+
/**
|
|
45
|
+
* OTLP/HTTP collector BASE url (Workers env binding), e.g.
|
|
46
|
+
* `https://otel.dev.nucleus-cloud.in`. The adapter appends the standard
|
|
47
|
+
* OTLP/HTTP signal paths (`/v1/logs`, `/v1/metrics`). A url that already ends
|
|
48
|
+
* in a signal path is used verbatim.
|
|
49
|
+
*/
|
|
50
|
+
collectorUrl: string;
|
|
51
|
+
/**
|
|
52
|
+
* Static headers attached to every OTLP/HTTP POST (Workers env binding),
|
|
53
|
+
* e.g. `{ authorization: "Bearer <aud=nodii-obs JWT>" }` for the
|
|
54
|
+
* `oidcauthextension` ingress (15-telemetry § 8 / D95). `content-type:
|
|
55
|
+
* application/json` is set by the adapter and need not be supplied.
|
|
56
|
+
*/
|
|
57
|
+
headers?: Record<string, string>;
|
|
58
|
+
/** D60 resource attr — the service id (e.g. `nodii-pager`). */
|
|
59
|
+
serviceName: string;
|
|
60
|
+
/** D60 resource attr — deployment env (`dev` | `uat` | `prod`). */
|
|
61
|
+
env: string;
|
|
62
|
+
/** D60 resource attr — optional service version. */
|
|
63
|
+
serviceVersion?: string;
|
|
64
|
+
/** Free-form extra resource attributes (D60). */
|
|
65
|
+
resourceAttributes?: Record<string, AttrValue>;
|
|
66
|
+
/**
|
|
67
|
+
* Injectable `fetch` (defaults to the runtime global). Supply a capturing
|
|
68
|
+
* fake in tests to assert the OTLP/HTTP request without a live collector.
|
|
69
|
+
*/
|
|
70
|
+
fetchImpl?: FetchLike;
|
|
71
|
+
/**
|
|
72
|
+
* Called with a one-line diagnostic when an OTLP/HTTP POST fails (non-2xx or
|
|
73
|
+
* network throw). Telemetry export failure MUST NOT break Workers business
|
|
74
|
+
* work (15-telemetry § 4.1 / pillar 5 / R1) — the emit path swallows the
|
|
75
|
+
* error and routes it here. Defaults to `console.warn`.
|
|
76
|
+
*/
|
|
77
|
+
onExportError?: (message: string, cause: unknown) => void;
|
|
78
|
+
/**
|
|
79
|
+
* Extra D15 redaction config, additive on top of the canonical D2 PII-field
|
|
80
|
+
* list + regex/PAN passes that ALWAYS run on the LOG path (15-telemetry § 7.3,
|
|
81
|
+
* fail-closed). Mirrors the Node logger's `.redact()` — `extraPaths` masks
|
|
82
|
+
* additional field-name keys; `scrubPan` toggles the Luhn PAN scrub (default
|
|
83
|
+
* on). Omit for the canonical passes only.
|
|
84
|
+
*/
|
|
85
|
+
redaction?: RedactionConfig;
|
|
86
|
+
}
|
|
87
|
+
/** A structured logger over OTLP/HTTP for Workers. */
|
|
88
|
+
export interface WorkerLogger {
|
|
89
|
+
debug(msg: string, opts?: EmitOpts): Promise<void>;
|
|
90
|
+
info(msg: string, opts?: EmitOpts): Promise<void>;
|
|
91
|
+
warn(msg: string, opts?: EmitOpts): Promise<void>;
|
|
92
|
+
error(msg: string, opts?: EmitOpts): Promise<void>;
|
|
93
|
+
}
|
|
94
|
+
/** Per-emit options: the explicit context + extra structured fields. */
|
|
95
|
+
export interface EmitOpts {
|
|
96
|
+
/** The explicit per-request context (workerd-safe; no ALS). */
|
|
97
|
+
context?: WorkerContext;
|
|
98
|
+
/** Extra structured fields merged into the log-record attributes. */
|
|
99
|
+
fields?: Record<string, AttrValue | null | undefined>;
|
|
100
|
+
}
|
|
101
|
+
/** A monotonic counter handle over OTLP/HTTP for Workers. */
|
|
102
|
+
export interface WorkerCounter {
|
|
103
|
+
/** Increment by 1 (or `by`), stamping the D26 trio + labels from `opts`. */
|
|
104
|
+
inc(opts?: CounterOpts): Promise<void>;
|
|
105
|
+
inc(by: number, opts?: CounterOpts): Promise<void>;
|
|
106
|
+
}
|
|
107
|
+
/** Per-increment options: the explicit context + extra labels. */
|
|
108
|
+
export interface CounterOpts {
|
|
109
|
+
context?: WorkerContext;
|
|
110
|
+
labels?: Record<string, AttrValue | null | undefined>;
|
|
111
|
+
}
|
|
112
|
+
/** The handle returned by {@link createWorkerTelemetry}. */
|
|
113
|
+
export interface WorkerTelemetry {
|
|
114
|
+
logger: WorkerLogger;
|
|
115
|
+
/** Register (or fetch) a monotonic counter by name. */
|
|
116
|
+
counter(name: string): WorkerCounter;
|
|
117
|
+
/** The resource attrs stamped on every export (for introspection/tests). */
|
|
118
|
+
readonly resource: OtlpResource;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Build the workerd-runnable telemetry handle. Config is passed in from Workers
|
|
122
|
+
* env bindings (NOT `process.env`). Emits structured logs + counters over
|
|
123
|
+
* OTLP/HTTP via `fetch`.
|
|
124
|
+
*/
|
|
125
|
+
export declare function createWorkerTelemetry(config: WorkerTelemetryConfig): WorkerTelemetry;
|
|
126
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker-lite/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
// `@nodii/telemetry/worker-lite` — the minimal Cloudflare Workers (workerd)
|
|
2
|
+
// emit adapter.
|
|
3
|
+
//
|
|
4
|
+
// WHY THIS EXISTS (15-telemetry-doctrine § 11 Open Question 3, LIVE):
|
|
5
|
+
// > "Fourth-substrate (Cloudflare Workers) emit gap. `nodii-pager` (D170)
|
|
6
|
+
// > runs on Workers; the Workers-OTLP exporter / minimal `@nodii/telemetry`
|
|
7
|
+
// > Workers adapter is TBD and out of current roster scope."
|
|
8
|
+
//
|
|
9
|
+
// The main package (`.`) + the `./worker` subpath boot the Node OTel SDK with
|
|
10
|
+
// gRPC OTLP exporters (`src/otlp-adapter.ts`) and the BullMQ/Redis-Streams
|
|
11
|
+
// worker substrate (`src/worker/`) — both pull `@grpc/grpc-js` + `node:*`, which
|
|
12
|
+
// CANNOT run on workerd. `nodii-pager` (D170, Cloudflare-resident) needs the
|
|
13
|
+
// minimal slice: structured LOGS + COUNTERS emitted over OTLP/HTTP via `fetch`.
|
|
14
|
+
// This module is that slice — NO `node:*`, NO `@opentelemetry/*`, NO gRPC, NO
|
|
15
|
+
// BullMQ. Only `fetch` + Web-standard APIs (workerd-runnable).
|
|
16
|
+
//
|
|
17
|
+
// DOCTRINE CONFORMANCE:
|
|
18
|
+
// - OTLP is the wire (15-telemetry § 2 / D11). We use OTLP/HTTP (JSON) instead
|
|
19
|
+
// of OTLP/gRPC because gRPC is Node-only; the collector's `otlphttp` receiver
|
|
20
|
+
// accepts the same payload tree (`otlp-http.ts`).
|
|
21
|
+
// - Logs carry the canonical D13 11-field envelope (15-telemetry § 3 →
|
|
22
|
+
// 03-logging § 2), SDK-injected from the supplied context + config — the
|
|
23
|
+
// SAME `LogEnvelope` type the Node logger forms, so Workers logs are
|
|
24
|
+
// wire-consistent with Node ones.
|
|
25
|
+
// - The mandatory correlation trio `tenant_id` / `request_id` / `intent_id`
|
|
26
|
+
// (15-telemetry § 4.2 / D26) rides every log envelope AND every counter
|
|
27
|
+
// datapoint. `tenant_id` is the bare key (§ 5.3 / D20) — same key across
|
|
28
|
+
// signals.
|
|
29
|
+
// - `service` + `deployment.environment.name` + bare `env` resource attrs on
|
|
30
|
+
// every export (§ 7.2 / D60).
|
|
31
|
+
// - D15 SDK-side redaction (§ 7.3 / § 7.5, LOCKED, fail-closed) runs on the
|
|
32
|
+
// LOG path before serialization — the load-bearing PII pass § 7.1/D41 says
|
|
33
|
+
// can't be bypassed per-service. On a redaction failure the record is
|
|
34
|
+
// DROPPED + `telemetry.sdk.redaction_failure_total` increments (drop, not
|
|
35
|
+
// leak). Reuses the pure (workerd-safe) `src/redaction.ts`.
|
|
36
|
+
//
|
|
37
|
+
// CONTEXT MECHANISM (deliverable requirement 4):
|
|
38
|
+
// Workers has NO AsyncLocalStorage guarantee (15-telemetry § 6.1 / D40 fixes
|
|
39
|
+
// ALS for Node/Bun; workerd does not guarantee it, and pulling `node:async_hooks`
|
|
40
|
+
// would break workerd-safety). So the Workers adapter takes an EXPLICIT
|
|
41
|
+
// `WorkerContext` argument on every emit (`log.info(msg, { context, ... })`,
|
|
42
|
+
// `counter.inc({ context, ... })`) rather than an implicit ambient store. The
|
|
43
|
+
// caller threads its per-request context (already available on the Workers
|
|
44
|
+
// `fetch(request, env, ctx)` handler) into each emit. This is the workerd-safe
|
|
45
|
+
// analogue of the Node ALS `NodiiContext` — same fields, explicitly passed.
|
|
46
|
+
//
|
|
47
|
+
// CONFIG (deliverable requirement 5):
|
|
48
|
+
// All config is PASSED IN (Workers env bindings), never read from
|
|
49
|
+
// `process.env`. `createWorkerTelemetry({ collectorUrl, headers, serviceName,
|
|
50
|
+
// env, ... })`.
|
|
51
|
+
// D15 SDK-side redaction (15-telemetry § 7.3 / § 7.5, LOCKED). `redaction.ts` is
|
|
52
|
+
// PURE (zero imports → workerd-safe); we import only its functions + type. This
|
|
53
|
+
// is the load-bearing, fail-closed PII pass that § 7.1/D41 says "can't be
|
|
54
|
+
// bypassed per-service" — so the Workers LOG path runs it exactly like the Node
|
|
55
|
+
// logger (`src/logger.ts`), NOT a per-service bypass.
|
|
56
|
+
import { attemptRedactFields, attemptRedactString, } from "../redaction.js";
|
|
57
|
+
import { buildLogsExportBody, buildMetricsExportBody, buildResource, } from "./otlp-http.js";
|
|
58
|
+
const SCOPE_NAME = "@nodii/telemetry/worker-lite";
|
|
59
|
+
/**
|
|
60
|
+
* Build the workerd-runnable telemetry handle. Config is passed in from Workers
|
|
61
|
+
* env bindings (NOT `process.env`). Emits structured logs + counters over
|
|
62
|
+
* OTLP/HTTP via `fetch`.
|
|
63
|
+
*/
|
|
64
|
+
export function createWorkerTelemetry(config) {
|
|
65
|
+
const resource = buildResource({
|
|
66
|
+
serviceName: config.serviceName,
|
|
67
|
+
env: config.env,
|
|
68
|
+
serviceVersion: config.serviceVersion,
|
|
69
|
+
extra: config.resourceAttributes,
|
|
70
|
+
});
|
|
71
|
+
// Resolve `fetch` at build time. Default to the runtime global (workerd/Bun/
|
|
72
|
+
// Node ≥18). We reference `globalThis.fetch` (present on all three) rather
|
|
73
|
+
// than a bare `fetch` so bundlers don't tree-shake it away.
|
|
74
|
+
const doFetch = config.fetchImpl ?? globalThis.fetch;
|
|
75
|
+
const onExportError = config.onExportError ??
|
|
76
|
+
((message, cause) => {
|
|
77
|
+
// eslint-disable-next-line no-console
|
|
78
|
+
console.warn(`[@nodii/telemetry/worker-lite] ${message}: ${cause instanceof Error ? cause.message : String(cause)}`);
|
|
79
|
+
});
|
|
80
|
+
const headers = {
|
|
81
|
+
"content-type": "application/json",
|
|
82
|
+
...config.headers,
|
|
83
|
+
};
|
|
84
|
+
const logsUrl = signalUrl(config.collectorUrl, "logs");
|
|
85
|
+
const metricsUrl = signalUrl(config.collectorUrl, "metrics");
|
|
86
|
+
async function post(url, body) {
|
|
87
|
+
try {
|
|
88
|
+
const res = await doFetch(url, {
|
|
89
|
+
method: "POST",
|
|
90
|
+
headers,
|
|
91
|
+
body: JSON.stringify(body),
|
|
92
|
+
});
|
|
93
|
+
if (!res.ok) {
|
|
94
|
+
onExportError(`OTLP/HTTP export to ${url} returned ${res.status}`, new Error(`status ${res.status}`));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
// Export failure must NEVER break business work (§ 4.1 / R1).
|
|
99
|
+
onExportError(`OTLP/HTTP export to ${url} failed`, err);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Emit a single monotonic DELTA counter datapoint over OTLP/HTTP. Shared by
|
|
104
|
+
* the public `counter().inc()` AND the internal D15 redaction-failure emit
|
|
105
|
+
* (workerd has no persistent SDK metric registry, so the fail-closed
|
|
106
|
+
* `telemetry.sdk.redaction_failure_total` is emitted through this same
|
|
107
|
+
* fetch-based path — best-effort, § 7.3).
|
|
108
|
+
*/
|
|
109
|
+
async function emitCounter(name, by, attributes) {
|
|
110
|
+
const nowNano = `${BigInt(Date.now()) * 1000000n}`;
|
|
111
|
+
const point = {
|
|
112
|
+
name,
|
|
113
|
+
value: by,
|
|
114
|
+
attributes,
|
|
115
|
+
// Delta window: for a stateless Workers emit each increment IS its own
|
|
116
|
+
// window, so start == time (a point-in-time delta of `by`).
|
|
117
|
+
startTimeUnixNano: nowNano,
|
|
118
|
+
timeUnixNano: nowNano,
|
|
119
|
+
};
|
|
120
|
+
await post(metricsUrl, buildMetricsExportBody(resource, SCOPE_NAME, [point]));
|
|
121
|
+
}
|
|
122
|
+
async function emitLog(level, msg, opts) {
|
|
123
|
+
// D15 SDK-side redaction (15-telemetry § 7.3 / § 7.5, LOCKED), run BEFORE
|
|
124
|
+
// the OTLP record is built — exactly like the Node logger (`src/logger.ts`
|
|
125
|
+
// emit). Two passes: the regex/PAN scrub on the free-text `msg` and the D2
|
|
126
|
+
// PII-field-name key match on the structured `fields`. FAIL-CLOSED: if
|
|
127
|
+
// either pass returns `{ok:false}` (redaction threw), the record is DROPPED
|
|
128
|
+
// (never emitted unredacted) and `telemetry.sdk.redaction_failure_total`
|
|
129
|
+
// increments. Better to drop than leak. § 7.1/D41: this pass can't be
|
|
130
|
+
// bypassed per-service — so the Workers adapter runs it too.
|
|
131
|
+
//
|
|
132
|
+
// SCOPING: redaction runs on the LOG path ONLY. Counters carry just the
|
|
133
|
+
// controlled D26 trio (tenant_id/request_id/intent_id — low-cardinality IDs,
|
|
134
|
+
// no free text) + caller labels, and worker-lite has NO spans — consistent
|
|
135
|
+
// with § 7.3 ("logs AND span attributes"), so no counter/span redaction is
|
|
136
|
+
// needed here.
|
|
137
|
+
const msgResult = attemptRedactString(msg, config.redaction);
|
|
138
|
+
if (!msgResult.ok) {
|
|
139
|
+
await emitRedactionFailure(msgResult.reason);
|
|
140
|
+
return; // DROP — do not emit the record.
|
|
141
|
+
}
|
|
142
|
+
const rawFields = opts?.fields ?? {};
|
|
143
|
+
const hasFields = Object.keys(rawFields).length > 0;
|
|
144
|
+
const fieldsResult = hasFields
|
|
145
|
+
? attemptRedactFields(rawFields, config.redaction)
|
|
146
|
+
: { ok: true, redacted: {} };
|
|
147
|
+
if (!fieldsResult.ok) {
|
|
148
|
+
await emitRedactionFailure(fieldsResult.reason);
|
|
149
|
+
return; // DROP — do not emit the record.
|
|
150
|
+
}
|
|
151
|
+
const envelope = buildEnvelope(level, msgResult.redacted, config.serviceName, config.env, opts?.context);
|
|
152
|
+
const record = {
|
|
153
|
+
envelope,
|
|
154
|
+
// The redacted fields are a plain record; narrow to the OTLP attr value
|
|
155
|
+
// type the encoder accepts (it drops any non-primitive / null defensively).
|
|
156
|
+
fields: fieldsResult.redacted,
|
|
157
|
+
};
|
|
158
|
+
await post(logsUrl, buildLogsExportBody(resource, SCOPE_NAME, [record]));
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Emit the D15 fail-closed counter (`telemetry.sdk.redaction_failure_total`)
|
|
162
|
+
* with the `reason` label. Best-effort — a failure to emit this counter must
|
|
163
|
+
* never itself throw out of the log path (§ 4.1 / R1); `emitCounter` routes
|
|
164
|
+
* any export error through `onExportError`.
|
|
165
|
+
*/
|
|
166
|
+
async function emitRedactionFailure(reason) {
|
|
167
|
+
await emitCounter("telemetry.sdk.redaction_failure_total", 1, { reason });
|
|
168
|
+
}
|
|
169
|
+
const logger = {
|
|
170
|
+
debug: (msg, opts) => emitLog("debug", msg, opts),
|
|
171
|
+
info: (msg, opts) => emitLog("info", msg, opts),
|
|
172
|
+
warn: (msg, opts) => emitLog("warn", msg, opts),
|
|
173
|
+
error: (msg, opts) => emitLog("error", msg, opts),
|
|
174
|
+
};
|
|
175
|
+
function counter(name) {
|
|
176
|
+
function increment(by, opts) {
|
|
177
|
+
// D26 trio + caller labels. The trio derives from the explicit context;
|
|
178
|
+
// bare `tenant_id` per D20.
|
|
179
|
+
return emitCounter(name, by, {
|
|
180
|
+
...contextTrio(opts?.context),
|
|
181
|
+
...opts?.labels,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
return {
|
|
185
|
+
inc(byOrOpts, maybeOpts) {
|
|
186
|
+
if (typeof byOrOpts === "number") {
|
|
187
|
+
return increment(byOrOpts, maybeOpts);
|
|
188
|
+
}
|
|
189
|
+
return increment(1, byOrOpts);
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
return { logger, counter, resource };
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Form the D13 11-field log envelope from the explicit context + config. Mirror
|
|
197
|
+
* of the Node logger's envelope construction (`src/logger.ts` `emit`). The `msg`
|
|
198
|
+
* passed here is ALREADY D15-redacted by the caller (`emitLog`); this function
|
|
199
|
+
* only shapes the envelope. Empty-string `tenant_id`/`request_id` substitution
|
|
200
|
+
* matches the Node logger when no context is active.
|
|
201
|
+
*/
|
|
202
|
+
function buildEnvelope(level, msg, service, env, ctx) {
|
|
203
|
+
return {
|
|
204
|
+
level,
|
|
205
|
+
ts: new Date().toISOString(),
|
|
206
|
+
msg,
|
|
207
|
+
service,
|
|
208
|
+
env,
|
|
209
|
+
tenant_id: ctx?.tenant_id ?? "",
|
|
210
|
+
user_id: ctx?.user_id ?? null,
|
|
211
|
+
on_behalf_of: ctx?.on_behalf_of ?? null,
|
|
212
|
+
actor_type: ctx?.actor_type,
|
|
213
|
+
request_id: ctx?.request_id ?? "",
|
|
214
|
+
trace_id: ctx?.trace_id ?? null,
|
|
215
|
+
span_id: ctx?.span_id ?? null,
|
|
216
|
+
intent_id: ctx?.intent_id ?? null,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* The D26 mandatory span-attribute trio as counter attributes. Bare `tenant_id`
|
|
221
|
+
* (D20). Only present keys are emitted; the OTLP encoder drops null/undefined.
|
|
222
|
+
*/
|
|
223
|
+
function contextTrio(ctx) {
|
|
224
|
+
return {
|
|
225
|
+
tenant_id: ctx?.tenant_id,
|
|
226
|
+
request_id: ctx?.request_id,
|
|
227
|
+
intent_id: ctx?.intent_id,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Resolve the OTLP/HTTP signal endpoint. If `base` already ends in a `/v1/*`
|
|
232
|
+
* signal path it is used verbatim; otherwise the standard path is appended
|
|
233
|
+
* (`<base>/v1/logs`, `<base>/v1/metrics`) per the OTLP/HTTP spec.
|
|
234
|
+
*/
|
|
235
|
+
function signalUrl(base, signal) {
|
|
236
|
+
const trimmed = base.replace(/\/+$/, "");
|
|
237
|
+
if (/\/v1\/(logs|metrics|traces)$/.test(trimmed))
|
|
238
|
+
return trimmed;
|
|
239
|
+
return `${trimmed}/v1/${signal}`;
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker-lite/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { LogEnvelope } from "../types.js";
|
|
2
|
+
/** A primitive attribute value the OTLP KeyValue encoder accepts. */
|
|
3
|
+
export type AttrValue = string | number | boolean;
|
|
4
|
+
/** OTLP `KeyValue` (JSON mapping). */
|
|
5
|
+
export interface OtlpKeyValue {
|
|
6
|
+
key: string;
|
|
7
|
+
value: OtlpAnyValue;
|
|
8
|
+
}
|
|
9
|
+
/** OTLP `AnyValue` (JSON mapping) — the subset we emit. */
|
|
10
|
+
export type OtlpAnyValue = {
|
|
11
|
+
stringValue: string;
|
|
12
|
+
} | {
|
|
13
|
+
intValue: string;
|
|
14
|
+
} | {
|
|
15
|
+
doubleValue: number;
|
|
16
|
+
} | {
|
|
17
|
+
boolValue: boolean;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Resource attributes stamped on the `resource` of every export (D60). The
|
|
21
|
+
* adapter builds this once from its config; the builders below take it as-is.
|
|
22
|
+
*/
|
|
23
|
+
export interface OtlpResource {
|
|
24
|
+
attributes: OtlpKeyValue[];
|
|
25
|
+
}
|
|
26
|
+
/** Encode a single primitive into an OTLP AnyValue. */
|
|
27
|
+
export declare function toAnyValue(v: AttrValue): OtlpAnyValue;
|
|
28
|
+
/** Encode a flat attribute record into the OTLP KeyValue list. */
|
|
29
|
+
export declare function toKeyValues(attrs: Record<string, AttrValue | null | undefined>): OtlpKeyValue[];
|
|
30
|
+
/**
|
|
31
|
+
* Build the OTLP `resource` from the adapter's resource attributes (D60). The
|
|
32
|
+
* bare `env` key AND the `deployment.environment.name` semantic key are BOTH
|
|
33
|
+
* stamped — mirroring `src/otlp-adapter.ts` so the collector's env-filter OTTL
|
|
34
|
+
* gate (infra request 63337357) resolves Workers signals identically to Node
|
|
35
|
+
* ones. `service.name` is the OTel semantic-convention key.
|
|
36
|
+
*/
|
|
37
|
+
export declare function buildResource(attrs: {
|
|
38
|
+
serviceName: string;
|
|
39
|
+
env: string;
|
|
40
|
+
serviceVersion?: string;
|
|
41
|
+
extra?: Record<string, AttrValue>;
|
|
42
|
+
}): OtlpResource;
|
|
43
|
+
/**
|
|
44
|
+
* Flatten a D13 `LogEnvelope` + caller fields into the OTLP log-record
|
|
45
|
+
* attribute list. Mirrors `src/otlp-adapter.ts` `buildLogAttributes` so a
|
|
46
|
+
* Workers log row is shaped identically to a Node one: bare `tenant_id` (D20),
|
|
47
|
+
* `request_id`, and the optional identity/correlation keys.
|
|
48
|
+
*/
|
|
49
|
+
export declare function buildLogAttributes(envelope: LogEnvelope, fields: Record<string, AttrValue | null | undefined>): OtlpKeyValue[];
|
|
50
|
+
/** A single log record to encode (envelope + already-formed extra fields). */
|
|
51
|
+
export interface WorkerLogRecord {
|
|
52
|
+
envelope: LogEnvelope;
|
|
53
|
+
fields: Record<string, AttrValue | null | undefined>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Build an OTLP/HTTP `ExportLogsServiceRequest` JSON body from a batch of log
|
|
57
|
+
* records under one resource. `timeUnixNano` is derived from the envelope `ts`
|
|
58
|
+
* ISO-8601 timestamp (the log emit time), matching the Node adapter's
|
|
59
|
+
* `timestamp: Date.now()` intent but preserving the envelope's own instant.
|
|
60
|
+
*/
|
|
61
|
+
export declare function buildLogsExportBody(resource: OtlpResource, scopeName: string, records: readonly WorkerLogRecord[]): {
|
|
62
|
+
resourceLogs: unknown[];
|
|
63
|
+
};
|
|
64
|
+
/** A single counter datapoint to encode. */
|
|
65
|
+
export interface WorkerCounterPoint {
|
|
66
|
+
name: string;
|
|
67
|
+
/** Monotonic-sum increment for this export window. */
|
|
68
|
+
value: number;
|
|
69
|
+
attributes: Record<string, AttrValue | null | undefined>;
|
|
70
|
+
/** Emission instant, unix-nanos as a decimal string. */
|
|
71
|
+
timeUnixNano: string;
|
|
72
|
+
/** Start of the delta window, unix-nanos as a decimal string. */
|
|
73
|
+
startTimeUnixNano: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Build an OTLP/HTTP `ExportMetricsServiceRequest` JSON body for a batch of
|
|
77
|
+
* counter datapoints under one resource. Every counter is emitted as a
|
|
78
|
+
* monotonic `sum` with **DELTA** temporality (`aggregationTemporality: 1`) —
|
|
79
|
+
* matching D21 (delta temporality for counters) and the Node adapter's
|
|
80
|
+
* `AggregationTemporality.DELTA`. One OTLP `metric` per distinct counter name;
|
|
81
|
+
* datapoints with the same name group under it.
|
|
82
|
+
*/
|
|
83
|
+
export declare function buildMetricsExportBody(resource: OtlpResource, scopeName: string, points: readonly WorkerCounterPoint[]): {
|
|
84
|
+
resourceMetrics: unknown[];
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Convert an ISO-8601 timestamp to unix-nanoseconds as a decimal string (the
|
|
88
|
+
* OTLP proto-JSON encoding for `fixed64` time fields). Millisecond precision
|
|
89
|
+
* (JS `Date` granularity) padded to nanos. Falls back to the current instant
|
|
90
|
+
* for an unparseable input rather than emitting `NaN`.
|
|
91
|
+
*/
|
|
92
|
+
export declare function isoToUnixNano(iso: string): string;
|
|
93
|
+
//# sourceMappingURL=otlp-http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otlp-http.d.ts","sourceRoot":"","sources":["../../src/worker-lite/otlp-http.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AAEzD,qEAAqE;AACrE,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAElD,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,2DAA2D;AAC3D,MAAM,MAAM,YAAY,GACpB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACvB;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACvB;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3B;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,YAAY,EAAE,CAAC;CAC5B;AAeD,uDAAuD;AACvD,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,GAAG,YAAY,CAQrD;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC,GAClD,YAAY,EAAE,CAOhB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACnC,GAAG,YAAY,CAYf;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC,GACnD,YAAY,EAAE,CAehB;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CACtD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC;IAAE,YAAY,EAAE,OAAO,EAAE,CAAA;CAAE,CAsB7B;AAED,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACzD,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,kBAAkB,EAAE,GACpC;IAAE,eAAe,EAAE,OAAO,EAAE,CAAA;CAAE,CA6BhC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIjD"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
// OTLP/HTTP (JSON) payload builders for the Cloudflare Workers adapter.
|
|
2
|
+
//
|
|
3
|
+
// workerd (Cloudflare Workers) CANNOT run the Node OTel SDK gRPC exporters
|
|
4
|
+
// (`@opentelemetry/exporter-*-otlp-grpc`) that `src/otlp-adapter.ts` wires —
|
|
5
|
+
// those pull `@grpc/grpc-js` + `node:*`. The Workers runtime exposes only
|
|
6
|
+
// `fetch` + Web-standard APIs, so this module hand-builds the OTLP/HTTP JSON
|
|
7
|
+
// envelope (the same wire the collector's `otlphttp` receiver accepts) and the
|
|
8
|
+
// adapter POSTs it with `fetch`. NO `@opentelemetry/*` import, NO `node:*`
|
|
9
|
+
// import — purely data-shaping over plain objects.
|
|
10
|
+
//
|
|
11
|
+
// The JSON shape follows the OTLP/HTTP spec's ExportLogsServiceRequest /
|
|
12
|
+
// ExportMetricsServiceRequest (opentelemetry-proto → JSON mapping): a
|
|
13
|
+
// `resourceLogs[]` / `resourceMetrics[]` tree with a `resource.attributes`
|
|
14
|
+
// KeyValue list, one `scopeLogs` / `scopeMetrics` entry, and the records.
|
|
15
|
+
//
|
|
16
|
+
// The log record shape reuses the canonical D13 11-field `LogEnvelope`
|
|
17
|
+
// (15-telemetry § 3 → 03-logging § 2) EXACTLY so Workers logs are wire-consistent
|
|
18
|
+
// with the Node adapter's logs (`src/otlp-adapter.ts` buildLogAttributes) — the
|
|
19
|
+
// same bare `tenant_id` key (D20), the same `request_id` / `intent_id` / `trace_id`
|
|
20
|
+
// correlation keys (D26/D3), the same `service` + `deployment.environment.name`
|
|
21
|
+
// resource attrs (D60). A counter datapoint carries the D26 mandatory
|
|
22
|
+
// span-attribute trio (`tenant_id`, `request_id`, `intent_id`) as its attributes
|
|
23
|
+
// when a context is supplied, so Workers metrics correlate per-tenant too (D20).
|
|
24
|
+
/**
|
|
25
|
+
* SeverityNumber per the OTLP logs spec (same numeric mapping the Node adapter
|
|
26
|
+
* derives via `@opentelemetry/api-logs` SeverityNumber): DEBUG=5, INFO=9,
|
|
27
|
+
* WARN=13, ERROR=17. Kept as a local constant so this module adds NO
|
|
28
|
+
* `@opentelemetry/*` dependency (workerd-safety).
|
|
29
|
+
*/
|
|
30
|
+
const SEVERITY_NUMBER = {
|
|
31
|
+
debug: 5,
|
|
32
|
+
info: 9,
|
|
33
|
+
warn: 13,
|
|
34
|
+
error: 17,
|
|
35
|
+
};
|
|
36
|
+
/** Encode a single primitive into an OTLP AnyValue. */
|
|
37
|
+
export function toAnyValue(v) {
|
|
38
|
+
if (typeof v === "boolean")
|
|
39
|
+
return { boolValue: v };
|
|
40
|
+
if (typeof v === "number") {
|
|
41
|
+
// Integers → intValue (string per proto-JSON int64 rule); non-integers →
|
|
42
|
+
// doubleValue. Matches how the collector round-trips numeric attributes.
|
|
43
|
+
return Number.isInteger(v) ? { intValue: String(v) } : { doubleValue: v };
|
|
44
|
+
}
|
|
45
|
+
return { stringValue: v };
|
|
46
|
+
}
|
|
47
|
+
/** Encode a flat attribute record into the OTLP KeyValue list. */
|
|
48
|
+
export function toKeyValues(attrs) {
|
|
49
|
+
const out = [];
|
|
50
|
+
for (const [key, v] of Object.entries(attrs)) {
|
|
51
|
+
if (v === null || v === undefined)
|
|
52
|
+
continue;
|
|
53
|
+
out.push({ key, value: toAnyValue(v) });
|
|
54
|
+
}
|
|
55
|
+
return out;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Build the OTLP `resource` from the adapter's resource attributes (D60). The
|
|
59
|
+
* bare `env` key AND the `deployment.environment.name` semantic key are BOTH
|
|
60
|
+
* stamped — mirroring `src/otlp-adapter.ts` so the collector's env-filter OTTL
|
|
61
|
+
* gate (infra request 63337357) resolves Workers signals identically to Node
|
|
62
|
+
* ones. `service.name` is the OTel semantic-convention key.
|
|
63
|
+
*/
|
|
64
|
+
export function buildResource(attrs) {
|
|
65
|
+
const kv = {
|
|
66
|
+
"service.name": attrs.serviceName,
|
|
67
|
+
"deployment.environment.name": attrs.env,
|
|
68
|
+
// Bare `env` — the collector env-filter OTTL gate keys on this exact name.
|
|
69
|
+
env: attrs.env,
|
|
70
|
+
...(attrs.serviceVersion
|
|
71
|
+
? { "service.version": attrs.serviceVersion }
|
|
72
|
+
: {}),
|
|
73
|
+
...attrs.extra,
|
|
74
|
+
};
|
|
75
|
+
return { attributes: toKeyValues(kv) };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Flatten a D13 `LogEnvelope` + caller fields into the OTLP log-record
|
|
79
|
+
* attribute list. Mirrors `src/otlp-adapter.ts` `buildLogAttributes` so a
|
|
80
|
+
* Workers log row is shaped identically to a Node one: bare `tenant_id` (D20),
|
|
81
|
+
* `request_id`, and the optional identity/correlation keys.
|
|
82
|
+
*/
|
|
83
|
+
export function buildLogAttributes(envelope, fields) {
|
|
84
|
+
const attrs = {
|
|
85
|
+
"service.name": envelope.service,
|
|
86
|
+
"deployment.environment.name": envelope.env,
|
|
87
|
+
tenant_id: envelope.tenant_id,
|
|
88
|
+
request_id: envelope.request_id,
|
|
89
|
+
...(envelope.user_id ? { user_id: envelope.user_id } : {}),
|
|
90
|
+
...(envelope.actor_type ? { actor_type: envelope.actor_type } : {}),
|
|
91
|
+
...(envelope.on_behalf_of ? { on_behalf_of: envelope.on_behalf_of } : {}),
|
|
92
|
+
...(envelope.intent_id ? { intent_id: envelope.intent_id } : {}),
|
|
93
|
+
...(envelope.trace_id ? { "telemetry.trace_id": envelope.trace_id } : {}),
|
|
94
|
+
...(envelope.span_id ? { "telemetry.span_id": envelope.span_id } : {}),
|
|
95
|
+
...fields,
|
|
96
|
+
};
|
|
97
|
+
return toKeyValues(attrs);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Build an OTLP/HTTP `ExportLogsServiceRequest` JSON body from a batch of log
|
|
101
|
+
* records under one resource. `timeUnixNano` is derived from the envelope `ts`
|
|
102
|
+
* ISO-8601 timestamp (the log emit time), matching the Node adapter's
|
|
103
|
+
* `timestamp: Date.now()` intent but preserving the envelope's own instant.
|
|
104
|
+
*/
|
|
105
|
+
export function buildLogsExportBody(resource, scopeName, records) {
|
|
106
|
+
const logRecords = records.map((r) => {
|
|
107
|
+
const timeUnixNano = isoToUnixNano(r.envelope.ts);
|
|
108
|
+
return {
|
|
109
|
+
timeUnixNano,
|
|
110
|
+
observedTimeUnixNano: timeUnixNano,
|
|
111
|
+
severityNumber: SEVERITY_NUMBER[r.envelope.level],
|
|
112
|
+
severityText: r.envelope.level,
|
|
113
|
+
body: { stringValue: r.envelope.msg },
|
|
114
|
+
attributes: buildLogAttributes(r.envelope, r.fields),
|
|
115
|
+
...(r.envelope.trace_id ? { traceId: r.envelope.trace_id } : {}),
|
|
116
|
+
...(r.envelope.span_id ? { spanId: r.envelope.span_id } : {}),
|
|
117
|
+
};
|
|
118
|
+
});
|
|
119
|
+
return {
|
|
120
|
+
resourceLogs: [
|
|
121
|
+
{
|
|
122
|
+
resource,
|
|
123
|
+
scopeLogs: [{ scope: { name: scopeName }, logRecords }],
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Build an OTLP/HTTP `ExportMetricsServiceRequest` JSON body for a batch of
|
|
130
|
+
* counter datapoints under one resource. Every counter is emitted as a
|
|
131
|
+
* monotonic `sum` with **DELTA** temporality (`aggregationTemporality: 1`) —
|
|
132
|
+
* matching D21 (delta temporality for counters) and the Node adapter's
|
|
133
|
+
* `AggregationTemporality.DELTA`. One OTLP `metric` per distinct counter name;
|
|
134
|
+
* datapoints with the same name group under it.
|
|
135
|
+
*/
|
|
136
|
+
export function buildMetricsExportBody(resource, scopeName, points) {
|
|
137
|
+
const byName = new Map();
|
|
138
|
+
for (const p of points) {
|
|
139
|
+
const bucket = byName.get(p.name);
|
|
140
|
+
if (bucket)
|
|
141
|
+
bucket.push(p);
|
|
142
|
+
else
|
|
143
|
+
byName.set(p.name, [p]);
|
|
144
|
+
}
|
|
145
|
+
const metrics = [...byName.entries()].map(([name, pts]) => ({
|
|
146
|
+
name,
|
|
147
|
+
sum: {
|
|
148
|
+
// 1 = AGGREGATION_TEMPORALITY_DELTA (OTLP metrics proto enum). D21.
|
|
149
|
+
aggregationTemporality: 1,
|
|
150
|
+
isMonotonic: true,
|
|
151
|
+
dataPoints: pts.map((p) => ({
|
|
152
|
+
asInt: String(Math.trunc(p.value)),
|
|
153
|
+
startTimeUnixNano: p.startTimeUnixNano,
|
|
154
|
+
timeUnixNano: p.timeUnixNano,
|
|
155
|
+
attributes: toKeyValues(p.attributes),
|
|
156
|
+
})),
|
|
157
|
+
},
|
|
158
|
+
}));
|
|
159
|
+
return {
|
|
160
|
+
resourceMetrics: [
|
|
161
|
+
{
|
|
162
|
+
resource,
|
|
163
|
+
scopeMetrics: [{ scope: { name: scopeName }, metrics }],
|
|
164
|
+
},
|
|
165
|
+
],
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Convert an ISO-8601 timestamp to unix-nanoseconds as a decimal string (the
|
|
170
|
+
* OTLP proto-JSON encoding for `fixed64` time fields). Millisecond precision
|
|
171
|
+
* (JS `Date` granularity) padded to nanos. Falls back to the current instant
|
|
172
|
+
* for an unparseable input rather than emitting `NaN`.
|
|
173
|
+
*/
|
|
174
|
+
export function isoToUnixNano(iso) {
|
|
175
|
+
const ms = Date.parse(iso);
|
|
176
|
+
const epochMs = Number.isNaN(ms) ? Date.now() : ms;
|
|
177
|
+
return `${BigInt(epochMs) * 1000000n}`;
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=otlp-http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otlp-http.js","sourceRoot":"","sources":["../../src/worker-lite/otlp-http.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nodii/telemetry",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "Substrate observability library for the Nodii microservice stack — OTel wrapper, log envelope, intent lifecycle, audit signal, agent registry, context propagation. Spec: planning hub docKey=telemetry.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -34,6 +34,10 @@
|
|
|
34
34
|
"./worker": {
|
|
35
35
|
"types": "./dist/worker/index.d.ts",
|
|
36
36
|
"default": "./dist/worker/index.js"
|
|
37
|
+
},
|
|
38
|
+
"./worker-lite": {
|
|
39
|
+
"types": "./dist/worker-lite/index.d.ts",
|
|
40
|
+
"default": "./dist/worker-lite/index.js"
|
|
37
41
|
}
|
|
38
42
|
},
|
|
39
43
|
"files": [
|