@nodii/telemetry 0.20.0 → 0.20.1
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/context-adapter/grpc.d.ts +48 -0
- package/dist/context-adapter/grpc.d.ts.map +1 -1
- package/dist/context-adapter/grpc.js +28 -1
- package/dist/context-adapter/grpc.js.map +1 -1
- package/dist/context-adapter/index.d.ts +1 -1
- package/dist/context-adapter/index.d.ts.map +1 -1
- package/dist/context-adapter/index.js +1 -1
- package/dist/context-adapter/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +13 -0
- package/dist/init.js.map +1 -1
- package/dist/propagation.d.ts +15 -0
- package/dist/propagation.d.ts.map +1 -0
- package/dist/propagation.js +62 -0
- package/dist/propagation.js.map +1 -0
- package/package.json +2 -1
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { type AdapterClaims, type MapClaimsOptions } from "./claims.js";
|
|
2
2
|
/** Canonical inbound request-id metadata key. */
|
|
3
3
|
export declare const REQUEST_ID_METADATA = "x-request-id";
|
|
4
|
+
/**
|
|
5
|
+
* Canonical inbound W3C trace-context metadata key (lower-case; gRPC
|
|
6
|
+
* metadata keys are case-insensitive and normalized to lower-case by
|
|
7
|
+
* `@grpc/grpc-js`). Symmetric with the Hono seam's `traceparent` header.
|
|
8
|
+
*/
|
|
9
|
+
export declare const TRACEPARENT_METADATA = "traceparent";
|
|
4
10
|
/**
|
|
5
11
|
* Minimal structural shape of a gRPC unary call this adapter reads. A
|
|
6
12
|
* real `@grpc/grpc-js` `ServerUnaryCall` (and the `@nodii/grpc-auth`
|
|
@@ -50,6 +56,48 @@ export interface NodiiContextInterceptorOptions extends Pick<MapClaimsOptions, "
|
|
|
50
56
|
* `UserActorEnvelope` only carries a single `user_role`).
|
|
51
57
|
*/
|
|
52
58
|
rolesMetadata?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Honor an inbound W3C `traceparent` metadata value so the callee's
|
|
61
|
+
* handler spans CONTINUE the caller's distributed trace instead of
|
|
62
|
+
* minting a fresh root trace at the gRPC hop. Default `true`.
|
|
63
|
+
*
|
|
64
|
+
* WHY THIS EXISTS (the tier-3 `telemetry-trace-continuity-grpc-hop`
|
|
65
|
+
* gap it closes): when a caller drives an RPC with a `traceparent` in
|
|
66
|
+
* call metadata, the callee must extract it into the active span
|
|
67
|
+
* context so the server span (and every child span) carries the SAME
|
|
68
|
+
* `trace_id`. Without this the interceptor set `NodiiContext` but never
|
|
69
|
+
* touched the trace context, so `tracer.span(...)` in the handler
|
|
70
|
+
* started a fresh root trace and the distributed trace did NOT span the
|
|
71
|
+
* hop. This mirrors the Hono seam's `honoTelemetry({ honorInboundTraceparent })`
|
|
72
|
+
* for the gRPC seam — the two entry seams are now symmetric.
|
|
73
|
+
*
|
|
74
|
+
* When honored + present, the interceptor opens ONE OTel SERVER span per
|
|
75
|
+
* RPC that inherits the inbound `trace_id`/`parent_span_id`, and runs the
|
|
76
|
+
* handler INSIDE that span so downstream `tracer.span(...)` calls nest
|
|
77
|
+
* under it (the lib's active-span stack makes it the parent for the
|
|
78
|
+
* handler scope). A malformed inbound `traceparent` does NOT throw — the
|
|
79
|
+
* SERVER span starts as a root span and records the raw value under
|
|
80
|
+
* `telemetry.inbound_traceparent_malformed` (see `tracer.ts`).
|
|
81
|
+
*
|
|
82
|
+
* Set `false` to skip the SERVER span entirely (the handler runs directly
|
|
83
|
+
* inside the `NodiiContext` scope with no interceptor-opened span) — e.g.
|
|
84
|
+
* when a separate OTel gRPC server instrumentation already owns the
|
|
85
|
+
* server span, or the trust boundary requires a fresh trace root.
|
|
86
|
+
*/
|
|
87
|
+
honorInboundTraceparent?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Metadata key to read the inbound W3C `traceparent` from. Defaults to
|
|
90
|
+
* `traceparent`.
|
|
91
|
+
*/
|
|
92
|
+
traceparentMetadata?: string;
|
|
93
|
+
/**
|
|
94
|
+
* Name for the interceptor-opened SERVER span. Receives the gRPC method
|
|
95
|
+
* name (the first arg the interceptor is called with, e.g.
|
|
96
|
+
* `"/nodii.billing.v1.Billing/GetInvoice"`). Defaults to the method name
|
|
97
|
+
* verbatim — a low-cardinality, gRPC-semconv-shaped value. Ignored when
|
|
98
|
+
* `honorInboundTraceparent` is `false`.
|
|
99
|
+
*/
|
|
100
|
+
spanName?: (methodName: string) => string;
|
|
53
101
|
}
|
|
54
102
|
/**
|
|
55
103
|
* gRPC server interceptor that SETS the active `NodiiContext` for the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../../src/context-adapter/grpc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../../src/context-adapter/grpc.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAEtB,MAAM,aAAa,CAAC;AAErB,iDAAiD;AACjD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE;QACT,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC;KAClD,CAAC;IACF,sEAAsE;IACtE,IAAI,CAAC,EAAE;QACL,YAAY,CAAC,EAAE;YACb,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,GAAG,IAAI,CAAC;QACT,SAAS,CAAC,EAAE;YACV,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,GAAG,IAAI,CAAC;QACT,cAAc,CAAC,EAAE;YACf,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,GAAG,IAAI,CAAC;KACV,GAAG,IAAI,CAAC;IACT,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AACzE,MAAM,MAAM,oBAAoB,GAAG,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,gBAAgB,KACtB,gBAAgB,CAAC;AAEtB,MAAM,WAAW,8BACf,SAAQ,IAAI,CACV,gBAAgB,EAChB,oBAAoB,GAAG,cAAc,GAAG,gBAAgB,CACzD;IACD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,aAAa,GAAG,IAAI,CAAC;IAC9D,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C;AA4ED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,8BAAmC,GAC3C,oBAAoB,CA+CtB"}
|
|
@@ -12,9 +12,16 @@
|
|
|
12
12
|
// It is an INBOUND seam: it SETS context for the handler scope and makes
|
|
13
13
|
// no outbound peer calls.
|
|
14
14
|
import { withContext } from "../context.js";
|
|
15
|
+
import { tracer } from "../tracer.js";
|
|
15
16
|
import { mapClaimsToContext, } from "./claims.js";
|
|
16
17
|
/** Canonical inbound request-id metadata key. */
|
|
17
18
|
export const REQUEST_ID_METADATA = "x-request-id";
|
|
19
|
+
/**
|
|
20
|
+
* Canonical inbound W3C trace-context metadata key (lower-case; gRPC
|
|
21
|
+
* metadata keys are case-insensitive and normalized to lower-case by
|
|
22
|
+
* `@grpc/grpc-js`). Symmetric with the Hono seam's `traceparent` header.
|
|
23
|
+
*/
|
|
24
|
+
export const TRACEPARENT_METADATA = "traceparent";
|
|
18
25
|
/** Read the first value of a metadata key as a UTF-8 string. */
|
|
19
26
|
function readMetadata(call, key) {
|
|
20
27
|
const values = call.metadata?.get(key);
|
|
@@ -94,9 +101,12 @@ function defaultExtractClaims(call, rolesMetadata) {
|
|
|
94
101
|
export function nodiiContextInterceptor(options = {}) {
|
|
95
102
|
const requestIdMetadata = options.requestIdMetadata ?? REQUEST_ID_METADATA;
|
|
96
103
|
const rolesMetadata = options.rolesMetadata ?? "x-user-roles";
|
|
104
|
+
const honorInbound = options.honorInboundTraceparent ?? true;
|
|
105
|
+
const traceparentMetadata = options.traceparentMetadata ?? TRACEPARENT_METADATA;
|
|
106
|
+
const nameOf = options.spanName ?? ((methodName) => methodName);
|
|
97
107
|
const extract = options.extractClaims ??
|
|
98
108
|
((call) => defaultExtractClaims(call, rolesMetadata));
|
|
99
|
-
return (
|
|
109
|
+
return (methodName, handler) => {
|
|
100
110
|
return (call) => {
|
|
101
111
|
const claims = extract(call) ?? {};
|
|
102
112
|
const requestId = readMetadata(call, requestIdMetadata) ?? null;
|
|
@@ -106,6 +116,23 @@ export function nodiiContextInterceptor(options = {}) {
|
|
|
106
116
|
roleFallback: options.roleFallback,
|
|
107
117
|
tenantFallback: options.tenantFallback,
|
|
108
118
|
});
|
|
119
|
+
// Trace-continuity across the gRPC hop (tier-3
|
|
120
|
+
// `telemetry-trace-continuity-grpc-hop`). Read the inbound W3C
|
|
121
|
+
// `traceparent` from call metadata and, when present + honored, open a
|
|
122
|
+
// SERVER span that INHERITS the caller's trace_id, running the handler
|
|
123
|
+
// inside it so the callee's spans continue the distributed trace rather
|
|
124
|
+
// than minting a fresh root. Symmetric with `honoTelemetry` on the Hono
|
|
125
|
+
// seam. Malformed traceparent → root SERVER span + forensic attr (no
|
|
126
|
+
// throw), handled by `tracer.span`'s `parent` resolution.
|
|
127
|
+
const inboundTraceparent = honorInbound
|
|
128
|
+
? readMetadata(call, traceparentMetadata)
|
|
129
|
+
: undefined;
|
|
130
|
+
if (inboundTraceparent) {
|
|
131
|
+
return withContext(ctx, () => tracer.span(nameOf(methodName), () => handler(call), {
|
|
132
|
+
kind: "SERVER",
|
|
133
|
+
parent: inboundTraceparent,
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
109
136
|
return withContext(ctx, () => handler(call));
|
|
110
137
|
};
|
|
111
138
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc.js","sourceRoot":"","sources":["../../src/context-adapter/grpc.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,SAAS;AACT,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,wEAAwE;AACxE,sEAAsE;AACtE,qEAAqE;AACrE,sEAAsE;AACtE,oDAAoD;AACpD,EAAE;AACF,yEAAyE;AACzE,0BAA0B;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"grpc.js","sourceRoot":"","sources":["../../src/context-adapter/grpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { type AdapterClaims, type MapClaimsOptions, collapseRolesToHighest, deriveActorType, mapClaimsToContext, ROLE_PRIVILEGE_ORDER, } from "./claims.js";
|
|
2
2
|
export { type NodiiContextMiddlewareOptions, nodiiContextMiddleware, REQUEST_ID_HEADER, } from "./hono.js";
|
|
3
|
-
export { type GrpcUnaryCall, type GrpcUnaryHandler, type GrpcUnaryInterceptor, type NodiiContextInterceptorOptions, nodiiContextInterceptor, REQUEST_ID_METADATA, } from "./grpc.js";
|
|
3
|
+
export { type GrpcUnaryCall, type GrpcUnaryHandler, type GrpcUnaryInterceptor, type NodiiContextInterceptorOptions, nodiiContextInterceptor, REQUEST_ID_METADATA, TRACEPARENT_METADATA, } from "./grpc.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context-adapter/index.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,6BAA6B,EAClC,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,8BAA8B,EACnC,uBAAuB,EACvB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context-adapter/index.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,6BAA6B,EAClC,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,8BAA8B,EACnC,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,WAAW,CAAC"}
|
|
@@ -13,5 +13,5 @@
|
|
|
13
13
|
// seam (cron / sweeper flows) don't pull `hono`.
|
|
14
14
|
export { collapseRolesToHighest, deriveActorType, mapClaimsToContext, ROLE_PRIVILEGE_ORDER, } from "./claims.js";
|
|
15
15
|
export { nodiiContextMiddleware, REQUEST_ID_HEADER, } from "./hono.js";
|
|
16
|
-
export { nodiiContextInterceptor, REQUEST_ID_METADATA, } from "./grpc.js";
|
|
16
|
+
export { nodiiContextInterceptor, REQUEST_ID_METADATA, TRACEPARENT_METADATA, } from "./grpc.js";
|
|
17
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context-adapter/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,iEAAiE;AACjE,EAAE;AACF,uEAAuE;AACvE,+DAA+D;AAC/D,iEAAiE;AACjE,EAAE;AACF,mEAAmE;AACnE,oEAAoE;AACpE,4EAA4E;AAC5E,EAAE;AACF,uEAAuE;AACvE,iDAAiD;AAEjD,OAAO,EAGL,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EAKL,uBAAuB,EACvB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context-adapter/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,iEAAiE;AACjE,EAAE;AACF,uEAAuE;AACvE,+DAA+D;AAC/D,iEAAiE;AACjE,EAAE;AACF,mEAAmE;AACnE,oEAAoE;AACpE,4EAA4E;AAC5E,EAAE;AACF,uEAAuE;AACvE,iDAAiD;AAEjD,OAAO,EAGL,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EAKL,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,WAAW,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export { getActiveSpan } from "./active-span.js";
|
|
|
8
8
|
export type { ActiveSpanRef } from "./active-span.js";
|
|
9
9
|
export type { ExtractedSpanContext, Span, SpanKind, SpanOptions, SpanParent, SpanRecord, SpanStatus, } from "./tracer.js";
|
|
10
10
|
export { forensicParentValue, parseTraceparent, resolveSpanParent, } from "./traceparent.js";
|
|
11
|
+
export { installGlobalPropagator } from "./propagation.js";
|
|
11
12
|
export { metrics, MetricVocabularyError, recordMetric } from "./metrics.js";
|
|
12
13
|
export type { CounterHandle, GaugeHandle, HistogramHandle, MetricKind, MetricRegistration, RecordMetricArgs, } from "./metrics.js";
|
|
13
14
|
export { _getAuditChain, _hasAnyAuditWriter, _resetAuditChainForTests, _resetDefaultAuditWriterForTests, _resetAuditWriterForTests, _setAuditChain, _setAuditWriter, _setDefaultAuditWriterProvider, audit, AUDIT_ACTOR_KINDS, AUDIT_OUTCOMES, } from "./audit.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -38,6 +38,7 @@ export { logger, createLogger } 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";
|
|
41
|
+
export { installGlobalPropagator } from "./propagation.js";
|
|
41
42
|
export { metrics, MetricVocabularyError, recordMetric } from "./metrics.js";
|
|
42
43
|
export { _getAuditChain, _hasAnyAuditWriter, _resetAuditChainForTests, _resetDefaultAuditWriterForTests, _resetAuditWriterForTests, _setAuditChain, _setAuditWriter, _setDefaultAuditWriterProvider, audit, AUDIT_ACTOR_KINDS, AUDIT_OUTCOMES, } from "./audit.js";
|
|
43
44
|
export { TelemetryAuditWriterMissing } from "./audit.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,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAOnD,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,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"}
|
|
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,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAOnD,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/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,KAAK,yBAAyB,EAE9B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EAEpB,MAAM,YAAY,CAAC;AAEpB,2EAA2E;AAC3E,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,wBAAwB,CAAC;IAC7C,WAAW,EAAE,kBAAkB,CAAC;IAChC,mBAAmB,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IACzD,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,mBAAmB,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CAC/D;AAgED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAmH/D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,uBAAuB,CAM1D;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,IAAI,uBAAuB,GAAG,IAAI,CAEnE;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,IAAI,IAAI,CAIrC"}
|
package/dist/init.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
// - Any public-API call before init: throws `TelemetryNotInitialized`.
|
|
9
9
|
import { _hasAnyAuditWriter } from "./audit.js";
|
|
10
10
|
import { installOtlpAdapter } from "./otlp-adapter.js";
|
|
11
|
+
import { installGlobalPropagator } from "./propagation.js";
|
|
11
12
|
import { DEFAULT_SAMPLING_CONFIG, TelemetryNotInitialized, } from "./types.js";
|
|
12
13
|
/** D154 defaults. */
|
|
13
14
|
const AUTO_INSTR_DEFAULTS = {
|
|
@@ -116,6 +117,18 @@ export function initTelemetry(config) {
|
|
|
116
117
|
"default writer) or call configureTelemetry({audit:{writer}}). " +
|
|
117
118
|
"(R1 — request e6b303f1; 02-audit-doctrine.md § 5.1.)");
|
|
118
119
|
}
|
|
120
|
+
// tier-3 `telemetry-trace-continuity-grpc-hop` — install the GLOBAL W3C
|
|
121
|
+
// trace-context propagator UNCONDITIONALLY, before (and independent of) the
|
|
122
|
+
// OTLP-endpoint branch below. Previously the global propagator was set only
|
|
123
|
+
// as a side effect of `installOtlpAdapter`'s `NodeTracerProvider.register()`,
|
|
124
|
+
// so a collector-less init (no endpoint / `disableOtlp: true`) left the
|
|
125
|
+
// default NO-OP propagator installed — `propagation.extract()` returned an
|
|
126
|
+
// empty context and the OTel gRPC/HTTP server instrumentations could not
|
|
127
|
+
// extract the inbound `traceparent`, so every hop minted a fresh root trace.
|
|
128
|
+
// Setting it here guarantees inbound trace-context extraction works on EVERY
|
|
129
|
+
// init. Idempotent; the OTLP adapter's later `.register()` sets the same
|
|
130
|
+
// composite (identical wire fields), so there is no conflict.
|
|
131
|
+
installGlobalPropagator();
|
|
119
132
|
// D153/D154 — wire real OTLP exporters when an endpoint is present
|
|
120
133
|
// and OTLP isn't explicitly disabled. The adapter replaces the no-op
|
|
121
134
|
// SpanEmitter / LogSink / MetricsBackend with real OTel SDK pipelines.
|
package/dist/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Install the global W3C trace-context (+ baggage) propagator so
|
|
3
|
+
* `propagation.extract()` / `propagation.inject()` — and the OTel
|
|
4
|
+
* http/grpc auto-instrumentations that call them — carry the inbound
|
|
5
|
+
* `traceparent` across the hop. Idempotent: subsequent calls no-op.
|
|
6
|
+
*
|
|
7
|
+
* Safe to call before OR without `installOtlpAdapter`. When the OTLP adapter
|
|
8
|
+
* later runs, its `NodeTracerProvider.register()` sets the SAME composite
|
|
9
|
+
* (identical wire fields), so there is no conflict — this just guarantees the
|
|
10
|
+
* propagator exists on the collector-less path too.
|
|
11
|
+
*/
|
|
12
|
+
export declare function installGlobalPropagator(): void;
|
|
13
|
+
/** Test-only reset of the install guard. NOT part of the public barrel. */
|
|
14
|
+
export declare function _resetGlobalPropagatorForTests(): void;
|
|
15
|
+
//# sourceMappingURL=propagation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"propagation.d.ts","sourceRoot":"","sources":["../src/propagation.ts"],"names":[],"mappings":"AA0CA;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAW9C;AAED,2EAA2E;AAC3E,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// Global W3C trace-context propagator wiring (tier-3
|
|
2
|
+
// `telemetry-trace-continuity-grpc-hop`).
|
|
3
|
+
//
|
|
4
|
+
// ROOT CAUSE this closes:
|
|
5
|
+
// Distributed trace continuity across a gRPC (or HTTP) hop depends on a
|
|
6
|
+
// GLOBAL OTel propagator being installed so `propagation.extract()` on the
|
|
7
|
+
// callee can read the inbound W3C `traceparent` into the active context.
|
|
8
|
+
// The `@nodii/telemetry` OTLP adapter installs it as a SIDE EFFECT of
|
|
9
|
+
// `NodeTracerProvider.register()` — but `register()` only runs when an OTLP
|
|
10
|
+
// endpoint is configured (`installOtlpAdapter`). A service that inits
|
|
11
|
+
// telemetry WITHOUT an endpoint (dev, tests, `disableOtlp: true`, or a
|
|
12
|
+
// collector-less staging box) therefore left the GLOBAL propagator as the
|
|
13
|
+
// default NO-OP propagator: `propagation.extract()` returned an empty
|
|
14
|
+
// context and `@opentelemetry/instrumentation-grpc`'s server-side extract
|
|
15
|
+
// was a silent no-op, so the callee minted a FRESH ROOT trace at every hop.
|
|
16
|
+
//
|
|
17
|
+
// Empirically verified in this repo: before `register()`,
|
|
18
|
+
// `propagation.fields()` is `[]` and extracting a `traceparent` carrier
|
|
19
|
+
// yields NO span context; after it, the W3C fields are present and
|
|
20
|
+
// extraction round-trips. See `tests/propagation.test.ts`.
|
|
21
|
+
//
|
|
22
|
+
// FIX: set the global propagator EXPLICITLY + UNCONDITIONALLY at
|
|
23
|
+
// `initTelemetry()`, independent of whether an OTLP endpoint resolves. The
|
|
24
|
+
// composite mirrors the OTel Node default (`tracecontext` + `baggage`) so we
|
|
25
|
+
// keep the same wire behavior the OTLP-endpoint path already produced, but
|
|
26
|
+
// now it is guaranteed on EVERY init.
|
|
27
|
+
//
|
|
28
|
+
// We construct the propagators from `@opentelemetry/core` (a direct dep,
|
|
29
|
+
// version-pinned to the SDK's own copy) and set them through the
|
|
30
|
+
// `@opentelemetry/api` global — the same global `GrpcInstrumentation`,
|
|
31
|
+
// `HttpInstrumentation`, and any manual `propagation.extract()` read from.
|
|
32
|
+
import { propagation } from "@opentelemetry/api";
|
|
33
|
+
import { CompositePropagator, W3CBaggagePropagator, W3CTraceContextPropagator, } from "@opentelemetry/core";
|
|
34
|
+
/** Idempotency guard — set the global propagator exactly once per process. */
|
|
35
|
+
let _installed = false;
|
|
36
|
+
/**
|
|
37
|
+
* Install the global W3C trace-context (+ baggage) propagator so
|
|
38
|
+
* `propagation.extract()` / `propagation.inject()` — and the OTel
|
|
39
|
+
* http/grpc auto-instrumentations that call them — carry the inbound
|
|
40
|
+
* `traceparent` across the hop. Idempotent: subsequent calls no-op.
|
|
41
|
+
*
|
|
42
|
+
* Safe to call before OR without `installOtlpAdapter`. When the OTLP adapter
|
|
43
|
+
* later runs, its `NodeTracerProvider.register()` sets the SAME composite
|
|
44
|
+
* (identical wire fields), so there is no conflict — this just guarantees the
|
|
45
|
+
* propagator exists on the collector-less path too.
|
|
46
|
+
*/
|
|
47
|
+
export function installGlobalPropagator() {
|
|
48
|
+
if (_installed)
|
|
49
|
+
return;
|
|
50
|
+
_installed = true;
|
|
51
|
+
propagation.setGlobalPropagator(new CompositePropagator({
|
|
52
|
+
propagators: [
|
|
53
|
+
new W3CTraceContextPropagator(),
|
|
54
|
+
new W3CBaggagePropagator(),
|
|
55
|
+
],
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
/** Test-only reset of the install guard. NOT part of the public barrel. */
|
|
59
|
+
export function _resetGlobalPropagatorForTests() {
|
|
60
|
+
_installed = false;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=propagation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"propagation.js","sourceRoot":"","sources":["../src/propagation.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,0CAA0C;AAC1C,EAAE;AACF,0BAA0B;AAC1B,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,wEAAwE;AACxE,8EAA8E;AAC9E,wEAAwE;AACxE,yEAAyE;AACzE,4EAA4E;AAC5E,wEAAwE;AACxE,4EAA4E;AAC5E,8EAA8E;AAC9E,EAAE;AACF,4DAA4D;AAC5D,0EAA0E;AAC1E,qEAAqE;AACrE,6DAA6D;AAC7D,EAAE;AACF,iEAAiE;AACjE,2EAA2E;AAC3E,6EAA6E;AAC7E,2EAA2E;AAC3E,sCAAsC;AACtC,EAAE;AACF,yEAAyE;AACzE,iEAAiE;AACjE,uEAAuE;AACvE,2EAA2E;AAE3E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,8EAA8E;AAC9E,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB;IACrC,IAAI,UAAU;QAAE,OAAO;IACvB,UAAU,GAAG,IAAI,CAAC;IAClB,WAAW,CAAC,mBAAmB,CAC7B,IAAI,mBAAmB,CAAC;QACtB,WAAW,EAAE;YACX,IAAI,yBAAyB,EAAE;YAC/B,IAAI,oBAAoB,EAAE;SAC3B;KACF,CAAC,CACH,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,8BAA8B;IAC5C,UAAU,GAAG,KAAK,CAAC;AACrB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nodii/telemetry",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.1",
|
|
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",
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@opentelemetry/api": "^1.9.0",
|
|
52
52
|
"@opentelemetry/api-logs": "^0.57.2",
|
|
53
|
+
"@opentelemetry/core": "^1.30.1",
|
|
53
54
|
"@opentelemetry/exporter-logs-otlp-grpc": "^0.57.2",
|
|
54
55
|
"@opentelemetry/exporter-metrics-otlp-grpc": "^0.57.2",
|
|
55
56
|
"@opentelemetry/exporter-trace-otlp-grpc": "^0.57.2",
|