@superblocksteam/telemetry 2.0.139 → 2.0.140-next.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/browser/init.d.ts +2 -0
- package/dist/browser/init.d.ts.map +1 -1
- package/dist/browser/init.js +3 -0
- package/dist/browser/init.js.map +1 -1
- package/dist/common/contracts/tier2-traces.d.ts +30 -10
- package/dist/common/contracts/tier2-traces.d.ts.map +1 -1
- package/dist/common/contracts/tier2-traces.js +57 -12
- package/dist/common/contracts/tier2-traces.js.map +1 -1
- package/dist/common/resource.d.ts +14 -0
- package/dist/common/resource.d.ts.map +1 -1
- package/dist/common/resource.js +20 -0
- package/dist/common/resource.js.map +1 -1
- package/dist/node/dynamic-attribute-processor.d.ts +43 -0
- package/dist/node/dynamic-attribute-processor.d.ts.map +1 -0
- package/dist/node/dynamic-attribute-processor.js +79 -0
- package/dist/node/dynamic-attribute-processor.js.map +1 -0
- package/dist/node/index.d.ts +1 -1
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/init.d.ts +24 -2
- package/dist/node/init.d.ts.map +1 -1
- package/dist/node/init.js +55 -16
- package/dist/node/init.js.map +1 -1
- package/dist/node/service-tracers.d.ts +52 -0
- package/dist/node/service-tracers.d.ts.map +1 -0
- package/dist/node/service-tracers.js +81 -0
- package/dist/node/service-tracers.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist-esm/browser/init.d.ts +2 -0
- package/dist-esm/browser/init.d.ts.map +1 -1
- package/dist-esm/browser/init.js +3 -0
- package/dist-esm/browser/init.js.map +1 -1
- package/dist-esm/common/contracts/tier2-traces.d.ts +30 -10
- package/dist-esm/common/contracts/tier2-traces.d.ts.map +1 -1
- package/dist-esm/common/contracts/tier2-traces.js +57 -12
- package/dist-esm/common/contracts/tier2-traces.js.map +1 -1
- package/dist-esm/common/resource.d.ts +14 -0
- package/dist-esm/common/resource.d.ts.map +1 -1
- package/dist-esm/common/resource.js +19 -0
- package/dist-esm/common/resource.js.map +1 -1
- package/dist-esm/node/dynamic-attribute-processor.d.ts +43 -0
- package/dist-esm/node/dynamic-attribute-processor.d.ts.map +1 -0
- package/dist-esm/node/dynamic-attribute-processor.js +74 -0
- package/dist-esm/node/dynamic-attribute-processor.js.map +1 -0
- package/dist-esm/node/index.d.ts +1 -1
- package/dist-esm/node/index.d.ts.map +1 -1
- package/dist-esm/node/index.js.map +1 -1
- package/dist-esm/node/init.d.ts +24 -2
- package/dist-esm/node/init.d.ts.map +1 -1
- package/dist-esm/node/init.js +56 -17
- package/dist-esm/node/init.js.map +1 -1
- package/dist-esm/node/service-tracers.d.ts +52 -0
- package/dist-esm/node/service-tracers.d.ts.map +1 -0
- package/dist-esm/node/service-tracers.js +78 -0
- package/dist-esm/node/service-tracers.js.map +1 -0
- package/dist-esm/types/index.d.ts +11 -0
- package/dist-esm/types/index.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/node/init.js
CHANGED
|
@@ -26,13 +26,19 @@ const policy_evaluator_js_1 = require("../common/policy-evaluator.js");
|
|
|
26
26
|
const resource_js_1 = require("../common/resource.js");
|
|
27
27
|
const trace_sanitizer_js_1 = require("../common/trace-sanitizer.js");
|
|
28
28
|
const policy_js_1 = require("../types/policy.js");
|
|
29
|
+
const dynamic_attribute_processor_js_1 = require("./dynamic-attribute-processor.js");
|
|
29
30
|
const resilient_exporter_js_1 = require("./exporters/resilient-exporter.js");
|
|
30
31
|
const local_obs_mode_js_1 = require("./local-obs-mode.js");
|
|
31
32
|
const log_processor_js_1 = require("./log-processor.js");
|
|
32
33
|
const metrics_client_js_1 = require("./metrics-client.js");
|
|
33
34
|
const sanitizing_processor_js_1 = require("./sanitizing-processor.js");
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
const service_tracers_js_1 = require("./service-tracers.js");
|
|
36
|
+
function getInstance() {
|
|
37
|
+
return globalThis.__superblocksNodeTelemetryInstance;
|
|
38
|
+
}
|
|
39
|
+
function setInstance(next) {
|
|
40
|
+
globalThis.__superblocksNodeTelemetryInstance = next;
|
|
41
|
+
}
|
|
36
42
|
/**
|
|
37
43
|
* Create a no-op telemetry instance for CI environments.
|
|
38
44
|
*
|
|
@@ -52,7 +58,9 @@ function createNoOpInstance(config, policy) {
|
|
|
52
58
|
return {
|
|
53
59
|
sdk: undefined,
|
|
54
60
|
policyEvaluator,
|
|
55
|
-
|
|
61
|
+
// No-op mode has no SDK/exporter, so secondary services collapse to the
|
|
62
|
+
// global (no-op) tracer — options.serviceName is accepted but inert.
|
|
63
|
+
getTracer: (name, _options) => api_1.trace.getTracer(name ?? config.serviceName, config.serviceVersion),
|
|
56
64
|
getMeter: (name) => api_1.metrics.getMeter(name ?? config.serviceName, config.serviceVersion),
|
|
57
65
|
getLogger: (name) => api_logs_1.logs.getLogger(name ?? config.serviceName, config.serviceVersion),
|
|
58
66
|
metricsClient: new metrics_client_js_1.MetricsClient(defaultMeter),
|
|
@@ -144,21 +152,23 @@ function initNodeTelemetry(config, policy) {
|
|
|
144
152
|
// Validate config
|
|
145
153
|
validateNodeTelemetryConfig(config);
|
|
146
154
|
// Return existing instance if already initialized
|
|
147
|
-
|
|
155
|
+
const existing = getInstance();
|
|
156
|
+
if (existing) {
|
|
148
157
|
// Warn if config differs from existing
|
|
149
|
-
const existingPolicy =
|
|
158
|
+
const existingPolicy = existing.policyEvaluator.getPolicy();
|
|
150
159
|
if (existingPolicy.deploymentType !== policy.deploymentType) {
|
|
151
160
|
console.warn(`[Telemetry] Already initialized with different deployment type ` +
|
|
152
161
|
`(existing: ${existingPolicy.deploymentType}, requested: ${policy.deploymentType}). ` +
|
|
153
162
|
`Returning existing instance.`);
|
|
154
163
|
}
|
|
155
|
-
return
|
|
164
|
+
return existing;
|
|
156
165
|
}
|
|
157
166
|
// CI environment detection - use no-op telemetry
|
|
158
167
|
if (process.env.CI === "true") {
|
|
159
168
|
console.debug("[Telemetry] CI environment detected, using no-op telemetry");
|
|
160
|
-
|
|
161
|
-
|
|
169
|
+
const noOp = createNoOpInstance(config, policy);
|
|
170
|
+
setInstance(noOp);
|
|
171
|
+
return noOp;
|
|
162
172
|
}
|
|
163
173
|
const policyEvaluator = new policy_evaluator_js_1.TelemetryPolicyEvaluator(policy);
|
|
164
174
|
const resource = (0, resource_js_1.buildResource)(config);
|
|
@@ -195,6 +205,11 @@ function initNodeTelemetry(config, policy) {
|
|
|
195
205
|
if ((0, local_obs_mode_js_1.isLocalObsMode)()) {
|
|
196
206
|
spanProcessor = new sdk_trace_base_1.BatchSpanProcessor(tier2Exporter);
|
|
197
207
|
}
|
|
208
|
+
// Stamp late-known identity (e.g. a dev-server's app/user/org, resolved at
|
|
209
|
+
// connect) onto every span without re-initializing the SDK.
|
|
210
|
+
if (config.dynamicAttributes) {
|
|
211
|
+
spanProcessor = new dynamic_attribute_processor_js_1.DynamicAttributeSpanProcessor(spanProcessor, config.dynamicAttributes);
|
|
212
|
+
}
|
|
198
213
|
}
|
|
199
214
|
// Create metric exporter if enabled
|
|
200
215
|
// Use isExportEnabled (not canExport) - sampling applies at runtime, not initialization
|
|
@@ -232,6 +247,11 @@ function initNodeTelemetry(config, policy) {
|
|
|
232
247
|
loggingPolicy.exportMode !== log_processor_js_1.LogExportMode.LOCAL_ONLY) {
|
|
233
248
|
const batchProcessor = new sdk_logs_1.BatchLogRecordProcessor(new exporter_logs_otlp_http_1.OTLPLogExporter({ url: `${config.otlpUrl}/v1/logs` }));
|
|
234
249
|
logProcessor = new log_processor_js_1.PolicyAwareLogProcessor(loggingPolicy, batchProcessor);
|
|
250
|
+
// Same late-known identity as spans: stamp before the policy processor so
|
|
251
|
+
// sanitization sees (and can redact) the identity attributes.
|
|
252
|
+
if (config.dynamicAttributes) {
|
|
253
|
+
logProcessor = new dynamic_attribute_processor_js_1.DynamicAttributeLogRecordProcessor(logProcessor, config.dynamicAttributes);
|
|
254
|
+
}
|
|
235
255
|
}
|
|
236
256
|
// Create the SDK
|
|
237
257
|
// Note: instrumentations typed as unknown[] for flexibility with various OTEL instrumentation packages
|
|
@@ -266,23 +286,41 @@ function initNodeTelemetry(config, policy) {
|
|
|
266
286
|
` | Traces: ${tracesEnabled} | Metrics: ${metricsEnabled} | Logs: ${logsEnabled}`);
|
|
267
287
|
}
|
|
268
288
|
const defaultMeter = api_1.metrics.getMeter(config.serviceName, config.serviceVersion);
|
|
269
|
-
|
|
289
|
+
// Secondary-service tracers (e.g. server LLM-Obs spans under
|
|
290
|
+
// `superblocks-ai-code-gen`). They reuse the SAME span processor so
|
|
291
|
+
// sanitization + export are identical; the SDK owns its lifecycle.
|
|
292
|
+
const serviceTracers = (0, service_tracers_js_1.createServiceTracers)({
|
|
293
|
+
baseResource: resource,
|
|
294
|
+
defaultServiceName: config.serviceName,
|
|
295
|
+
serviceVersion: config.serviceVersion,
|
|
296
|
+
spanProcessor,
|
|
297
|
+
});
|
|
298
|
+
const created = {
|
|
270
299
|
sdk,
|
|
271
300
|
policyEvaluator,
|
|
272
|
-
getTracer: (name) =>
|
|
301
|
+
getTracer: (name, options) => serviceTracers.getTracer(name ?? config.serviceName, options?.serviceName ?? config.serviceName),
|
|
273
302
|
getMeter: (name) => api_1.metrics.getMeter(name ?? config.serviceName, config.serviceVersion),
|
|
274
303
|
getLogger: (name) => api_logs_1.logs.getLogger(name ?? config.serviceName, config.serviceVersion),
|
|
275
304
|
metricsClient: new metrics_client_js_1.MetricsClient(defaultMeter),
|
|
276
305
|
shutdown: async () => {
|
|
277
306
|
try {
|
|
307
|
+
// Best-effort flush of secondary providers; never let it block the
|
|
308
|
+
// primary SDK teardown (which owns the shared span processor).
|
|
309
|
+
try {
|
|
310
|
+
await serviceTracers.shutdown();
|
|
311
|
+
}
|
|
312
|
+
catch (error) {
|
|
313
|
+
console.warn("[Telemetry] serviceTracers shutdown failed:", error);
|
|
314
|
+
}
|
|
278
315
|
await sdk.shutdown();
|
|
279
316
|
}
|
|
280
317
|
finally {
|
|
281
|
-
|
|
318
|
+
setInstance(undefined);
|
|
282
319
|
}
|
|
283
320
|
},
|
|
284
321
|
};
|
|
285
|
-
|
|
322
|
+
setInstance(created);
|
|
323
|
+
return created;
|
|
286
324
|
}
|
|
287
325
|
/**
|
|
288
326
|
* Get the current telemetry instance.
|
|
@@ -290,22 +328,23 @@ function initNodeTelemetry(config, policy) {
|
|
|
290
328
|
* @throws Error if not initialized
|
|
291
329
|
*/
|
|
292
330
|
function getTelemetryInstance() {
|
|
293
|
-
|
|
331
|
+
const current = getInstance();
|
|
332
|
+
if (!current) {
|
|
294
333
|
throw new Error("[Telemetry] Not initialized. Call initNodeTelemetry() first.");
|
|
295
334
|
}
|
|
296
|
-
return
|
|
335
|
+
return current;
|
|
297
336
|
}
|
|
298
337
|
/**
|
|
299
338
|
* Check if telemetry is initialized.
|
|
300
339
|
*/
|
|
301
340
|
function isTelemetryInitialized() {
|
|
302
|
-
return
|
|
341
|
+
return getInstance() !== undefined;
|
|
303
342
|
}
|
|
304
343
|
/**
|
|
305
344
|
* Reset telemetry (for testing only).
|
|
306
345
|
* @internal
|
|
307
346
|
*/
|
|
308
347
|
function resetTelemetry() {
|
|
309
|
-
|
|
348
|
+
setInstance(undefined);
|
|
310
349
|
}
|
|
311
350
|
//# sourceMappingURL=init.js.map
|
package/dist/node/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/node/init.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/node/init.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAoOH,8CA2OC;AAOD,oDAQC;AAKD,wDAEC;AAMD,wCAEC;AA3eD,4CAAmE;AACnE,sDAAuD;AACvD,4EAAqF;AACrF,8CAAgE;AAChE,oFAAyE;AACzE,0FAA+E;AAC/E,sFAA4E;AAC5E,sDAGiC;AACjC,4DAGoC;AACpC,sDAAkD;AAClD,kEAGuC;AAEvC,yEAAqF;AACrF,uEAAyE;AACzE,uDAAwE;AACxE,qEAA8D;AAE9D,kDAAoE;AACpE,qFAG0C;AAC1C,6EAAsE;AACtE,2DAAqD;AACrD,yDAI4B;AAC5B,2DAAoD;AACpD,uEAGmC;AACnC,6DAA4D;AAqD5D,SAAS,WAAW;IAClB,OAAO,UAAU,CAAC,kCAAkC,CAAC;AACvD,CAAC;AAED,SAAS,WAAW,CAAC,IAAuC;IAC1D,UAAU,CAAC,kCAAkC,GAAG,IAAI,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,kBAAkB,CACzB,MAA2B,EAC3B,MAAuB;IAEvB,MAAM,eAAe,GAAG,IAAI,8CAAwB,CAAC,MAAM,CAAC,CAAC;IAE7D,2CAA2C;IAC3C,MAAM,YAAY,GAAG,aAAO,CAAC,QAAQ,CACnC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,cAAc,CACtB,CAAC;IAEF,OAAO;QACL,GAAG,EAAE,SAAS;QACd,eAAe;QACf,wEAAwE;QACxE,qEAAqE;QACrE,SAAS,EAAE,CAAC,IAAa,EAAE,QAA2B,EAAE,EAAE,CACxD,WAAK,CAAC,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;QACpE,QAAQ,EAAE,CAAC,IAAa,EAAE,EAAE,CAC1B,aAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;QACrE,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE,CAC3B,eAAI,CAAC,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;QACnE,aAAa,EAAE,IAAI,iCAAa,CAAC,YAAY,CAAC;QAC9C,QAAQ,EAAE,KAAK,IAAI,EAAE;YACnB,uCAAuC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,2BAA2B;IAIlC,MAAM,GAAG,GACP,CAAC,KAAuB,EAAE,EAAE,CAC5B,CAAC,CAAkB,EAAE,CAAU,EAAQ,EAAE;QACvC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,KAAK,KAAK,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;gBACjC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,KAAK,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;;gBAC1C,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IACJ,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC;QACnB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;KAClB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,2BAA2B,CAAC,MAA2B;IAC9D,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,CAAC,OAAO,KAAM,KAAe,CAAC,OAAO,GAAG,CAC/E,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,iBAAiB,CAC/B,MAA2B,EAC3B,MAAuB;IAEvB,qBAAqB;IACrB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,kBAAkB;IAClB,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAEpC,kDAAkD;IAClD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAI,QAAQ,EAAE,CAAC;QACb,uCAAuC;QACvC,MAAM,cAAc,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;QAC5D,IAAI,cAAc,CAAC,cAAc,KAAK,MAAM,CAAC,cAAc,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,CACV,iEAAiE;gBAC/D,cAAc,cAAc,CAAC,cAAc,gBAAgB,MAAM,CAAC,cAAc,KAAK;gBACrF,8BAA8B,CACjC,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,iDAAiD;IACjD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChD,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,8CAAwB,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAA,2BAAa,EAAC,MAAM,CAAC,CAAC;IAEvC,4CAA4C;IAC5C,IAAA,8BAAgB,EAAC,QAAQ,CAAC,CAAC;IAE3B,wCAAwC;IACxC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE;QAC/C,YAAY,IAAI,KAAK,CAAC;QACtB,OAAO,CAAC,IAAI,CACV,uBAAuB,KAAK,WAAW,MAAM,qBAAqB,YAAY,EAAE,CACjF,CAAC;IACJ,CAAC,CAAC;IAEF,sEAAsE;IACtE,yFAAyF;IACzF,yFAAyF;IACzF,IAAI,aAAwC,CAAC;IAC7C,IACE,MAAM,CAAC,OAAO;QACd,eAAe,CAAC,eAAe,CAAC,yBAAa,CAAC,kBAAkB,CAAC,EACjE,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,yCAAiB,CAAC;YAC1C,QAAQ,EAAE,IAAI,4CAAiB,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,YAAY,EAAE,CAAC;YACvE,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,IAAI,IAAI,CAAC;QAC3D,MAAM,aAAa,GAAG,IAAA,gDAA8B,EAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC5E,MAAM,cAAc,GAAG,IAAI,mCAAc,CAAC;YACxC,UAAU;YACV,GAAG,aAAa;SACjB,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,IAAI,2BAA2B,EAAE,CAAC;QAC3E,aAAa,GAAG,IAAI,iDAAuB,CACzC,eAAe,EACf,2CAAiB,EACjB,aAAa,EACb,cAAc,EACd,mBAAmB,CACpB,CAAC;QACF,wEAAwE;QACxE,2EAA2E;QAC3E,qBAAqB;QACrB,IAAI,IAAA,kCAAc,GAAE,EAAE,CAAC;YACrB,aAAa,GAAG,IAAI,mCAAkB,CAAC,aAAa,CAAC,CAAC;QACxD,CAAC;QACD,2EAA2E;QAC3E,4DAA4D;QAC5D,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7B,aAAa,GAAG,IAAI,8DAA6B,CAC/C,aAAa,EACb,MAAM,CAAC,iBAAiB,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,wFAAwF;IACxF,IAAI,YAAuD,CAAC;IAC5D,IACE,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,cAAc,KAAK,KAAK;QAC/B,eAAe,CAAC,eAAe,CAAC,yBAAa,CAAC,kBAAkB,CAAC,EACjE,CAAC;QACD,YAAY,GAAG,IAAI,2CAA6B,CAAC;YAC/C,QAAQ,EAAE,IAAI,+CAAkB,CAAC;gBAC/B,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,aAAa;gBACnC,qBAAqB,EAAE,oCAAsB,CAAC,KAAK;aACpD,CAAC;YACF,oBAAoB,EAAE,KAAK,EAAE,mBAAmB;SACjD,CAAC,CAAC;IACL,CAAC;IAED,oEAAoE;IACpE,4DAA4D;IAC5D,kGAAkG;IAClG,gFAAgF;IAChF,2DAA2D;IAC3D,IAAI,YAA4C,CAAC;IACjD,IAAI,aAAa,GAAG,IAAA,mCAAgB,EAAC,MAAM,CAAC,CAAC;IAE7C,4EAA4E;IAC5E,+EAA+E;IAC/E,8EAA8E;IAC9E,IAAI,IAAA,kCAAc,GAAE,EAAE,CAAC;QACrB,aAAa,GAAG;YACd,GAAG,aAAa;YAChB,UAAU,EAAE,gCAAa,CAAC,cAAc;SACzC,CAAC;IACJ,CAAC;IAED,IACE,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,WAAW,KAAK,KAAK;QAC5B,eAAe,CAAC,eAAe,CAAC,yBAAa,CAAC,kBAAkB,CAAC;QACjE,aAAa,CAAC,UAAU,KAAK,gCAAa,CAAC,UAAU,EACrD,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,kCAAuB,CAChD,IAAI,yCAAe,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,UAAU,EAAE,CAAC,CAC1D,CAAC;QACF,YAAY,GAAG,IAAI,0CAAuB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAC1E,0EAA0E;QAC1E,8DAA8D;QAC9D,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7B,YAAY,GAAG,IAAI,mEAAkC,CACnD,YAAY,EACZ,MAAM,CAAC,iBAAiB,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,uGAAuG;IACvG,MAAM,GAAG,GAAG,IAAI,kBAAO,CAAC;QACtB,QAAQ;QACR,aAAa;QACb,YAAY;QACZ,kBAAkB,EAAE,YAAY;QAChC,cAAc,EAAE,IAAI,qDAA+B,EAAE;QACrD,iBAAiB,EAAE,IAAI,gCAAyB,EAAE;QAClD,iGAAiG;QACjG,gBAAgB,EAAE,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAQ;KACzD,CAAC,CAAC;IAEH,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,aAAa,GAAG,aAAa;QACjC,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,UAAU,CAAC;IACf,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7D,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC1D,IAAI,OAAO,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB;YACE,SAAS,EAAE,WAAW;YACtB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,aAAa;SACtB,EACD,uBAAuB,CACxB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CACV,+BAA+B,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,cAAc,GAAG;YAC5E,cAAc,aAAa,eAAe,cAAc,YAAY,WAAW,EAAE,CACpF,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,aAAO,CAAC,QAAQ,CACnC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,cAAc,CACtB,CAAC;IAEF,6DAA6D;IAC7D,oEAAoE;IACpE,mEAAmE;IACnE,MAAM,cAAc,GAAG,IAAA,yCAAoB,EAAC;QAC1C,YAAY,EAAE,QAAQ;QACtB,kBAAkB,EAAE,MAAM,CAAC,WAAW;QACtC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,OAAO,GAA0B;QACrC,GAAG;QACH,eAAe;QACf,SAAS,EAAE,CAAC,IAAa,EAAE,OAA0B,EAAE,EAAE,CACvD,cAAc,CAAC,SAAS,CACtB,IAAI,IAAI,MAAM,CAAC,WAAW,EAC1B,OAAO,EAAE,WAAW,IAAI,MAAM,CAAC,WAAW,CAC3C;QACH,QAAQ,EAAE,CAAC,IAAa,EAAE,EAAE,CAC1B,aAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;QACrE,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE,CAC3B,eAAI,CAAC,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;QACnE,aAAa,EAAE,IAAI,iCAAa,CAAC,YAAY,CAAC;QAC9C,QAAQ,EAAE,KAAK,IAAI,EAAE;YACnB,IAAI,CAAC;gBACH,mEAAmE;gBACnE,+DAA+D;gBAC/D,IAAI,CAAC;oBACH,MAAM,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAClC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;YACvB,CAAC;oBAAS,CAAC;gBACT,WAAW,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;KACF,CAAC;IAEF,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB;IAClC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB;IACpC,OAAO,WAAW,EAAE,KAAK,SAAS,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc;IAC5B,WAAW,CAAC,SAAS,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service-scoped tracer factory.
|
|
3
|
+
*
|
|
4
|
+
* `service.name` lives on the OTel Resource, and a process has exactly one
|
|
5
|
+
* primary Resource (set at SDK init). Datadog maps that resource `service.name`
|
|
6
|
+
* to LLM-Obs `ml_app`, so emitting a subset of spans under a different `ml_app`
|
|
7
|
+
* requires a provider with a different Resource — not a span attribute (which is
|
|
8
|
+
* forbidden) nor a second SDK (also forbidden outside this package).
|
|
9
|
+
*
|
|
10
|
+
* This factory lazily creates one additional `BasicTracerProvider` per
|
|
11
|
+
* non-default service name, each carrying a Resource derived from the base via
|
|
12
|
+
* {@link withServiceName} and sharing the SAME span processor (and therefore the
|
|
13
|
+
* same sanitization + export pipeline) as the primary SDK. See APPS-5082.
|
|
14
|
+
*
|
|
15
|
+
* Side effect: `service.name` also drives the Datadog APM `service`, so spans
|
|
16
|
+
* emitted under a secondary name surface as a separate APM service entity (not
|
|
17
|
+
* just a separate LLM-Obs `ml_app`).
|
|
18
|
+
*/
|
|
19
|
+
import { type Tracer } from "@opentelemetry/api";
|
|
20
|
+
import type { Resource } from "@opentelemetry/resources";
|
|
21
|
+
import { type SpanProcessor } from "@opentelemetry/sdk-trace-base";
|
|
22
|
+
/**
|
|
23
|
+
* A factory for tracers bound to a specific `service.name`.
|
|
24
|
+
*/
|
|
25
|
+
export interface ServiceTracers {
|
|
26
|
+
/**
|
|
27
|
+
* Get a tracer that emits spans under `serviceName`. When `serviceName` equals
|
|
28
|
+
* the default service, the primary (globally registered) provider is used.
|
|
29
|
+
*
|
|
30
|
+
* @param name - Instrumentation scope name
|
|
31
|
+
* @param serviceName - Service identity for emitted spans' resource
|
|
32
|
+
*/
|
|
33
|
+
getTracer(name: string, serviceName: string): Tracer;
|
|
34
|
+
/** Flush spans buffered by any secondary providers. */
|
|
35
|
+
shutdown(): Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Create a service-scoped tracer factory.
|
|
39
|
+
*
|
|
40
|
+
* @param config - Factory configuration
|
|
41
|
+
* @param config.baseResource - The primary SDK resource to derive from
|
|
42
|
+
* @param config.defaultServiceName - The primary service name (uses the global provider)
|
|
43
|
+
* @param config.serviceVersion - Instrumentation version passed to getTracer
|
|
44
|
+
* @param config.spanProcessor - Span processor shared with secondary providers (omit to disable export)
|
|
45
|
+
*/
|
|
46
|
+
export declare function createServiceTracers(config: {
|
|
47
|
+
baseResource: Resource;
|
|
48
|
+
defaultServiceName: string;
|
|
49
|
+
serviceVersion: string;
|
|
50
|
+
spanProcessor?: SpanProcessor;
|
|
51
|
+
}): ServiceTracers;
|
|
52
|
+
//# sourceMappingURL=service-tracers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-tracers.d.ts","sourceRoot":"","sources":["../../src/node/service-tracers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAS,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AAIvC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IACrD,uDAAuD;IACvD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,YAAY,EAAE,QAAQ,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,cAAc,CAsDjB"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Service-scoped tracer factory.
|
|
4
|
+
*
|
|
5
|
+
* `service.name` lives on the OTel Resource, and a process has exactly one
|
|
6
|
+
* primary Resource (set at SDK init). Datadog maps that resource `service.name`
|
|
7
|
+
* to LLM-Obs `ml_app`, so emitting a subset of spans under a different `ml_app`
|
|
8
|
+
* requires a provider with a different Resource — not a span attribute (which is
|
|
9
|
+
* forbidden) nor a second SDK (also forbidden outside this package).
|
|
10
|
+
*
|
|
11
|
+
* This factory lazily creates one additional `BasicTracerProvider` per
|
|
12
|
+
* non-default service name, each carrying a Resource derived from the base via
|
|
13
|
+
* {@link withServiceName} and sharing the SAME span processor (and therefore the
|
|
14
|
+
* same sanitization + export pipeline) as the primary SDK. See APPS-5082.
|
|
15
|
+
*
|
|
16
|
+
* Side effect: `service.name` also drives the Datadog APM `service`, so spans
|
|
17
|
+
* emitted under a secondary name surface as a separate APM service entity (not
|
|
18
|
+
* just a separate LLM-Obs `ml_app`).
|
|
19
|
+
*/
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.createServiceTracers = createServiceTracers;
|
|
22
|
+
const api_1 = require("@opentelemetry/api");
|
|
23
|
+
const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
|
|
24
|
+
const resource_js_1 = require("../common/resource.js");
|
|
25
|
+
/**
|
|
26
|
+
* Create a service-scoped tracer factory.
|
|
27
|
+
*
|
|
28
|
+
* @param config - Factory configuration
|
|
29
|
+
* @param config.baseResource - The primary SDK resource to derive from
|
|
30
|
+
* @param config.defaultServiceName - The primary service name (uses the global provider)
|
|
31
|
+
* @param config.serviceVersion - Instrumentation version passed to getTracer
|
|
32
|
+
* @param config.spanProcessor - Span processor shared with secondary providers (omit to disable export)
|
|
33
|
+
*/
|
|
34
|
+
function createServiceTracers(config) {
|
|
35
|
+
const { baseResource, defaultServiceName, serviceVersion, spanProcessor } = config;
|
|
36
|
+
// One secondary provider per non-default service name.
|
|
37
|
+
const providers = new Map();
|
|
38
|
+
let shutdownCalled = false;
|
|
39
|
+
return {
|
|
40
|
+
getTracer(name, serviceName) {
|
|
41
|
+
// Default service (or a blank name, which would yield an empty ml_app)
|
|
42
|
+
// uses the globally registered provider — the primary SDK's when traces
|
|
43
|
+
// are enabled, otherwise the API's no-op provider. After shutdown we also
|
|
44
|
+
// route here so a late call (e.g. an in-flight request during graceful
|
|
45
|
+
// shutdown) never resurrects a secondary provider on the closing pipeline.
|
|
46
|
+
if (shutdownCalled ||
|
|
47
|
+
!serviceName.trim() ||
|
|
48
|
+
serviceName === defaultServiceName) {
|
|
49
|
+
return api_1.trace.getTracer(name, serviceVersion);
|
|
50
|
+
}
|
|
51
|
+
let provider = providers.get(serviceName);
|
|
52
|
+
if (!provider) {
|
|
53
|
+
provider = new sdk_trace_base_1.BasicTracerProvider({
|
|
54
|
+
resource: (0, resource_js_1.withServiceName)(baseResource, serviceName),
|
|
55
|
+
// Share the primary span processor so sanitization + export are
|
|
56
|
+
// identical. The primary SDK owns its lifecycle (shutdown), so we
|
|
57
|
+
// never shut the shared processor down from here — see shutdown().
|
|
58
|
+
spanProcessors: spanProcessor ? [spanProcessor] : [],
|
|
59
|
+
});
|
|
60
|
+
providers.set(serviceName, provider);
|
|
61
|
+
}
|
|
62
|
+
return provider.getTracer(name, serviceVersion);
|
|
63
|
+
},
|
|
64
|
+
async shutdown() {
|
|
65
|
+
shutdownCalled = true;
|
|
66
|
+
// Every secondary provider shares the one primary span processor, so flush
|
|
67
|
+
// it once rather than N times through each provider. Flush only — the
|
|
68
|
+
// primary SDK owns the processor's shutdown; closing it here would
|
|
69
|
+
// double-close it. Swallow+log so a flush failure can't reject (which
|
|
70
|
+
// would block the caller's primary sdk.shutdown()) nor vanish silently.
|
|
71
|
+
try {
|
|
72
|
+
await spanProcessor?.forceFlush();
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
console.warn("[Telemetry] Secondary-service tracer flush failed during shutdown:", error);
|
|
76
|
+
}
|
|
77
|
+
providers.clear();
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=service-tracers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-tracers.js","sourceRoot":"","sources":["../../src/node/service-tracers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAoCH,oDA2DC;AA7FD,4CAAwD;AAExD,kEAGuC;AAEvC,uDAAwD;AAkBxD;;;;;;;;GAQG;AACH,SAAgB,oBAAoB,CAAC,MAKpC;IACC,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,GACvE,MAAM,CAAC;IACT,uDAAuD;IACvD,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IACzD,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,OAAO;QACL,SAAS,CAAC,IAAY,EAAE,WAAmB;YACzC,uEAAuE;YACvE,wEAAwE;YACxE,0EAA0E;YAC1E,uEAAuE;YACvE,2EAA2E;YAC3E,IACE,cAAc;gBACd,CAAC,WAAW,CAAC,IAAI,EAAE;gBACnB,WAAW,KAAK,kBAAkB,EAClC,CAAC;gBACD,OAAO,WAAK,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,GAAG,IAAI,oCAAmB,CAAC;oBACjC,QAAQ,EAAE,IAAA,6BAAe,EAAC,YAAY,EAAE,WAAW,CAAC;oBACpD,gEAAgE;oBAChE,kEAAkE;oBAClE,mEAAmE;oBACnE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;iBACrD,CAAC,CAAC;gBACH,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,CAAC,QAAQ;YACZ,cAAc,GAAG,IAAI,CAAC;YACtB,2EAA2E;YAC3E,sEAAsE;YACtE,mEAAmE;YACnE,sEAAsE;YACtE,wEAAwE;YACxE,IAAI,CAAC;gBACH,MAAM,aAAa,EAAE,UAAU,EAAE,CAAC;YACpC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CACV,oEAAoE,EACpE,KAAK,CACN,CAAC;YACJ,CAAC;YACD,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -56,6 +56,17 @@ export interface NodeTelemetryConfig extends BaseTelemetryConfig {
|
|
|
56
56
|
warn(obj: object, msg?: string): void;
|
|
57
57
|
warn(msg: string): void;
|
|
58
58
|
};
|
|
59
|
+
/**
|
|
60
|
+
* Optional provider for attributes that are only known after telemetry is
|
|
61
|
+
* initialized (e.g. the application/user/org identity a dev-server learns at
|
|
62
|
+
* connect time, when the SDK must already be running to instrument startup).
|
|
63
|
+
* Called on every span start and every log-record emit and merged onto the
|
|
64
|
+
* signal, so late-known identity lands on spans and logs without
|
|
65
|
+
* re-initializing the SDK. Metrics deliberately do not pick it up (identity
|
|
66
|
+
* would multiply time-series cardinality). Omit for a static resource only;
|
|
67
|
+
* the server and other services do not set it.
|
|
68
|
+
*/
|
|
69
|
+
dynamicAttributes?: () => Record<string, string>;
|
|
59
70
|
}
|
|
60
71
|
/**
|
|
61
72
|
* Browser specific telemetry configuration.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IAEpB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IAEvB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IAEpB,qCAAqC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1C,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAE7B,2CAA2C;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAE3D;;;OAGG;IACH,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxC,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IAEpB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IAEvB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IAEpB,qCAAqC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1C,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAE7B,2CAA2C;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAE3D;;;OAGG;IACH,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxC,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;IAEF;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,0IAA0I;IAC1I,OAAO,EAAE,MAAM,CAAC;IAEhB,oFAAoF;IACpF,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB"}
|
|
@@ -33,6 +33,8 @@ export interface BrowserTelemetryInstance {
|
|
|
33
33
|
setGlobalSpanAttributes: (attrs: Record<string, string>) => void;
|
|
34
34
|
/** Register an additional SpanProcessor on the provider (e.g. LocalStorageExporter) */
|
|
35
35
|
addSpanProcessor: (processor: SpanProcessor) => void;
|
|
36
|
+
/** Flush pending spans without tearing down (e.g. on pagehide) */
|
|
37
|
+
forceFlush: () => Promise<void>;
|
|
36
38
|
/** Graceful shutdown */
|
|
37
39
|
shutdown: () => Promise<void>;
|
|
38
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/browser/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAQtD,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAiB,MAAM,oBAAoB,CAAC;AAWpE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,uCAAuC;IACvC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,6CAA6C;IAC7C,eAAe,EAAE,wBAAwB,CAAC;IAC1C,mBAAmB;IACnB,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,wCAAwC;IACxC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;IACnC,4CAA4C;IAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,4FAA4F;IAC5F,uBAAuB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACjE,uFAAuF;IACvF,gBAAgB,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IACrD,wBAAwB;IACxB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AA2GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,eAAe,GACtB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/browser/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAQtD,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAiB,MAAM,oBAAoB,CAAC;AAWpE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,uCAAuC;IACvC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,6CAA6C;IAC7C,eAAe,EAAE,wBAAwB,CAAC;IAC1C,mBAAmB;IACnB,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,wCAAwC;IACxC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;IACnC,4CAA4C;IAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,4FAA4F;IAC5F,uBAAuB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACjE,uFAAuF;IACvF,gBAAgB,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IACrD,kEAAkE;IAClE,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,wBAAwB;IACxB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AA2GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,eAAe,GACtB,wBAAwB,CAoJ1B;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,wBAAwB,CAOtE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAEvD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWnE"}
|
package/dist-esm/browser/init.js
CHANGED
|
@@ -255,6 +255,9 @@ export function initBrowserTelemetry(config, policy) {
|
|
|
255
255
|
addSpanProcessor: (processor) => {
|
|
256
256
|
compositeProcessor.add(processor);
|
|
257
257
|
},
|
|
258
|
+
forceFlush: async () => {
|
|
259
|
+
await provider.forceFlush();
|
|
260
|
+
},
|
|
258
261
|
shutdown: async () => {
|
|
259
262
|
await provider.shutdown();
|
|
260
263
|
if (metricsInstance) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/browser/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAe,MAAM,oBAAoB,CAAC;AAG1E,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EACL,kBAAkB,GAInB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAmB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,kBAAkB,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAA+B,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/browser/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tier 2 Traces Contract (v0.
|
|
2
|
+
* Tier 2 Traces Contract (v0.6.0) — TypeScript mirror.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* THIS FILE IS A MIRROR, NOT THE SOURCE OF TRUTH. The canonical Tier 2 traces
|
|
5
|
+
* contract lives in the `engineering` repo:
|
|
6
|
+
* - engineering/projects/o11y-refactor/contracts/tier2-traces.v0.6.0.json (canonical contract)
|
|
7
|
+
* - engineering/projects/o11y-refactor/contracts/README.md (rationale, Versioning Policy, Review Checklist)
|
|
8
|
+
* Org-wide telemetry naming and the Tier 2 privacy boundary are documented in the
|
|
9
|
+
* `workspace` repo: workspace/docs/naming-conventions.md and the `observability`
|
|
10
|
+
* skill (.agents/skills/observability/SKILL.md).
|
|
6
11
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
+
* CHANGING TIER 2 BEHAVIOR (forbidden / hashed / dropped / allowed attributes):
|
|
13
|
+
* 1. Update the canonical JSON in `engineering` FIRST, as a NEW version, per the
|
|
14
|
+
* README Versioning Policy (breaking = MAJOR, additive = MINOR, docs = PATCH).
|
|
15
|
+
* 2. Propagate the SAME change to every mirror so they stay byte-for-byte aligned:
|
|
16
|
+
* - this file (TS SDK sanitizer / ESLint / guardrails)
|
|
17
|
+
* - orchestrator/pkg/telemetry/forbidden_attributes.go (Go SDK maps)
|
|
18
|
+
* - orchestrator/pkg/telemetry/contracts/tier2-traces.json (Go embedded; regenerate via
|
|
19
|
+
* orchestrator/scripts/sync-ts-telemetry-contracts.sh — do not hand-edit)
|
|
20
|
+
* Editing this file alone silently drifts from the contract and the other SDKs, which
|
|
21
|
+
* lets a re-cased or newly added attribute bypass the Tier 2 privacy boundary. Cross-surface
|
|
22
|
+
* parity is enforced by the orchestrator Go tests (TestForbiddenAttributesMatchTSContract,
|
|
23
|
+
* TestDroppedAttributesMatchTS).
|
|
12
24
|
*
|
|
13
|
-
*
|
|
25
|
+
* Used by: trace-sanitizer (which spans/attributes to export), lint/forbidden-attributes
|
|
26
|
+
* (ESLint), guardrails (dev-time warnings), and Collector config generation.
|
|
27
|
+
* "request handler *" is a local extension for Express instrumentation (not in the JSON).
|
|
14
28
|
*/
|
|
15
29
|
import { DeploymentTypeEnum } from "@superblocksteam/shared";
|
|
16
30
|
export interface AttributeDefinition {
|
|
@@ -56,7 +70,13 @@ export declare const FORBIDDEN_TIER_2_SPAN_ATTRIBUTES: string[];
|
|
|
56
70
|
* these fail closed and never flow raw until an HMAC key is provisioned.
|
|
57
71
|
*/
|
|
58
72
|
export declare const HASHED_TIER_2_SPAN_ATTRIBUTES: string[];
|
|
59
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* Dropped — high cardinality, no hash value (droppedAttributes in contract).
|
|
75
|
+
* The contract's dropped set also lists correlation/request/trace/execution ids,
|
|
76
|
+
* but those are dropped at the collector (and pass through at the SDK in
|
|
77
|
+
* pass-through mode); the SDK only hard-drops binding keys. v0.6.0 adds the
|
|
78
|
+
* dotted/kebab spellings of binding_keys for casing parity.
|
|
79
|
+
*/
|
|
60
80
|
export declare const DROPPED_HIGH_CARDINALITY_ATTRIBUTES: string[];
|
|
61
81
|
export declare const TIER2_FORBIDDEN_ATTRIBUTES: Set<string>;
|
|
62
82
|
export declare const TIER2_HASHED_ATTRIBUTES: Set<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tier2-traces.d.ts","sourceRoot":"","sources":["../../../src/common/contracts/tier2-traces.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tier2-traces.d.ts","sourceRoot":"","sources":["../../../src/common/contracts/tier2-traces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAM7D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,mBAAmB,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAE/D;AA0KD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAAc,EA+TjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAAc,EAEhD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,kBAAkB,GACjC,cAAc,EAAE,CAQlB;AAMD,8FAA8F;AAC9F,eAAO,MAAM,gCAAgC,EAAE,MAAM,EAiEpD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,EAAE,MAAM,EAUjD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,EAAE,MAAM,EAIvD,CAAC;AAMF,eAAO,MAAM,0BAA0B,aAEtC,CAAC;AACF,eAAO,MAAM,uBAAuB,aAAyC,CAAC;AAC9E,eAAO,MAAM,wBAAwB,aAEpC,CAAC;AASF;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,sEAAsE;IACtE,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,uFAAuF;IACvF,6BAA6B,EAAE,OAAO,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,kBAAkB,GACjC,2BAA2B,CAwB7B;AAMD,0FAA0F;AAC1F,eAAO,MAAM,mBAAmB,aAA2B,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,UAYpC,CAAC;AAMF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGhE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE5D"}
|