@veryfront/ext-observability-opentelemetry 0.1.1029 → 0.1.1032

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/esm/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { ExtensionFactory } from "veryfront/extensions";
2
- import type { NodeTelemetryInitializeOptions, NodeTelemetryProvider, SpanData, TracingExporter } from "veryfront/extensions/observability";
2
+ import type { NodeTelemetryInitializeOptions, NodeTelemetryLogRecord, NodeTelemetryProvider, SpanData, TracingExporter } from "veryfront/extensions/observability";
3
3
  /**
4
4
  * The TracerProvider interface as expected by the core shim.
5
5
  * Using structural typing because the real SDK provider satisfies this shape.
@@ -13,6 +13,11 @@ type MetricsAPI = {
13
13
  type TraceAPI = {
14
14
  getActiveSpan(): unknown;
15
15
  getSpan(ctx: unknown): unknown;
16
+ setSpan(ctx: unknown, span: unknown): unknown;
17
+ };
18
+ type ContextAPI = {
19
+ active(): unknown;
20
+ with<T>(ctx: unknown, fn: () => T): T;
16
21
  };
17
22
  type EnvReader = (name: string) => string | undefined;
18
23
  export interface ResolvedOtlpExtensionConfig {
@@ -39,12 +44,16 @@ declare class OtlpTracingExporter implements TracingExporter {
39
44
  private logProvider;
40
45
  private metricsApi;
41
46
  private traceApi;
47
+ private contextApi;
48
+ private logRecordEmitter;
42
49
  start(_ctxConfig: Record<string, unknown>): Promise<void>;
43
50
  export(_spans: SpanData[]): Promise<void>;
44
51
  shutdown(): Promise<void>;
45
52
  getProvider(): ShimTracerProvider;
46
53
  getMetricsAPI(): MetricsAPI | null;
47
54
  getTraceAPI(): TraceAPI | null;
55
+ getContextAPI(): ContextAPI | null;
56
+ getLogRecordEmitter(): ((record: NodeTelemetryLogRecord) => void) | null;
48
57
  }
49
58
  declare class OpenTelemetryNodeTelemetryProvider implements NodeTelemetryProvider {
50
59
  private sdk;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EACV,8BAA8B,EAE9B,qBAAqB,EACrB,QAAQ,EACR,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAE5C;;;GAGG;AACH,UAAU,kBAAkB;IAC1B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACpD;AA4BD,KAAK,UAAU,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AACpF,KAAK,QAAQ,GAAG;IAAE,aAAa,IAAI,OAAO,CAAC;IAAC,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAA;CAAE,CAAC;AAgH7E,KAAK,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,2BAA2B,EAAE,MAAM,CAAC;IACpC,4BAA4B,EAAE,OAAO,GAAG,YAAY,GAAG,WAAW,CAAC;CACpE;AAoGD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GACpC,MAAM,GAAG,SAAS,CAKpB;AAqCD,wBAAgB,0BAA0B,CACxC,IAAI,GAAE,SAAmB,GACxB,2BAA2B,CA8C7B;AAED,cAAM,mBAAoB,YAAW,eAAe;IAClD,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,QAAQ,CAAyB;IAEnC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA4GzD,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B/B,WAAW,IAAI,kBAAkB;IAKjC,aAAa,IAAI,UAAU,GAAG,IAAI;IAIlC,WAAW,IAAI,QAAQ,GAAG,IAAI;CAG/B;AAED,cAAM,kCAAmC,YAAW,qBAAqB;IACvE,OAAO,CAAC,GAAG,CAA8C;IAEnD,UAAU,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,OAAO,CAAC;IA4HrE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAQhC;AAED;;;;;GAKG;AACH,QAAA,MAAM,gBAAgB,EAAE,gBA8CvB,CAAC;AAEF,eAAe,gBAAgB,CAAC;AAChC,OAAO,EAAE,kCAAkC,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EACV,8BAA8B,EAC9B,sBAAsB,EACtB,qBAAqB,EACrB,QAAQ,EACR,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAE5C;;;GAGG;AACH,UAAU,kBAAkB;IAC1B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACpD;AA4BD,KAAK,UAAU,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AACpF,KAAK,QAAQ,GAAG;IACd,aAAa,IAAI,OAAO,CAAC;IACzB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/B,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CAC/C,CAAC;AACF,KAAK,UAAU,GAAG;IAChB,MAAM,IAAI,OAAO,CAAC;IAClB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;CACvC,CAAC;AAgHF,KAAK,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,2BAA2B,EAAE,MAAM,CAAC;IACpC,4BAA4B,EAAE,OAAO,GAAG,YAAY,GAAG,WAAW,CAAC;CACpE;AAoGD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GACpC,MAAM,GAAG,SAAS,CAKpB;AAqCD,wBAAgB,0BAA0B,CACxC,IAAI,GAAE,SAAmB,GACxB,2BAA2B,CA8C7B;AAED,cAAM,mBAAoB,YAAW,eAAe;IAClD,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,gBAAgB,CAA2D;IAE7E,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmIzD,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B/B,WAAW,IAAI,kBAAkB;IAKjC,aAAa,IAAI,UAAU,GAAG,IAAI;IAIlC,WAAW,IAAI,QAAQ,GAAG,IAAI;IAI9B,aAAa,IAAI,UAAU,GAAG,IAAI;IAIlC,mBAAmB,IAAI,CAAC,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC,GAAG,IAAI;CAGzE;AAED,cAAM,kCAAmC,YAAW,qBAAqB;IACvE,OAAO,CAAC,GAAG,CAA8C;IAEnD,UAAU,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,OAAO,CAAC;IA4HrE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAQhC;AAED;;;;;GAKG;AACH,QAAA,MAAM,gBAAgB,EAAE,gBA8CvB,CAAC;AAEF,eAAe,gBAAgB,CAAC;AAChC,OAAO,EAAE,kCAAkC,EAAE,mBAAmB,EAAE,CAAC"}
package/esm/index.js CHANGED
@@ -247,6 +247,8 @@ class OtlpTracingExporter {
247
247
  logProvider = null;
248
248
  metricsApi = null;
249
249
  traceApi = null;
250
+ contextApi = null;
251
+ logRecordEmitter = null;
250
252
  async start(_ctxConfig) {
251
253
  const cfg = resolveOtlpExtensionConfig(readEnv);
252
254
  // Honor OTEL_TRACES_ENABLED: when unset/false, skip exporter wiring so
@@ -282,6 +284,11 @@ class OtlpTracingExporter {
282
284
  this.traceApi = {
283
285
  getActiveSpan: () => otel.api.trace.getActiveSpan(),
284
286
  getSpan: (ctx) => otel.api.trace.getSpan(ctx),
287
+ setSpan: (ctx, span) => otel.api.trace.setSpan(ctx, span),
288
+ };
289
+ this.contextApi = {
290
+ active: () => otel.api.context.active(),
291
+ with: (ctx, fn) => otel.api.context.with(ctx, fn),
285
292
  };
286
293
  }
287
294
  if (cfg.metricsEnabled) {
@@ -317,7 +324,17 @@ class OtlpTracingExporter {
317
324
  ],
318
325
  });
319
326
  otel.apiLogs.logs.setGlobalLoggerProvider(this.logProvider);
320
- otel.apiLogs.logs.getLogger(cfg.serviceName, cfg.serviceVersion).emit({
327
+ const otelLogger = otel.apiLogs.logs.getLogger(cfg.serviceName, cfg.serviceVersion);
328
+ this.logRecordEmitter = (record) => {
329
+ otelLogger.emit({
330
+ timestamp: record.timestamp ? new Date(record.timestamp) : new Date(),
331
+ severityNumber: logSeverityNumber(otel, record.level),
332
+ severityText: record.level?.toUpperCase() ?? "INFO",
333
+ body: record.message,
334
+ attributes: logAttributes(record),
335
+ });
336
+ };
337
+ otelLogger.emit({
321
338
  severityNumber: otel.apiLogs.SeverityNumber.INFO,
322
339
  severityText: "INFO",
323
340
  body: "OpenTelemetry log export initialized",
@@ -339,6 +356,7 @@ class OtlpTracingExporter {
339
356
  }
340
357
  finally {
341
358
  this.logProvider = null;
359
+ this.logRecordEmitter = null;
342
360
  }
343
361
  }
344
362
  if (this.meterProvider) {
@@ -355,6 +373,8 @@ class OtlpTracingExporter {
355
373
  }
356
374
  finally {
357
375
  this.sdkProvider = null;
376
+ this.traceApi = null;
377
+ this.contextApi = null;
358
378
  }
359
379
  }
360
380
  }
@@ -369,6 +389,12 @@ class OtlpTracingExporter {
369
389
  getTraceAPI() {
370
390
  return this.traceApi;
371
391
  }
392
+ getContextAPI() {
393
+ return this.contextApi;
394
+ }
395
+ getLogRecordEmitter() {
396
+ return this.logRecordEmitter;
397
+ }
372
398
  }
373
399
  class OpenTelemetryNodeTelemetryProvider {
374
400
  sdk = null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veryfront/ext-observability-opentelemetry",
3
- "version": "0.1.1029",
3
+ "version": "0.1.1032",
4
4
  "description": "Veryfront first-party extension package for ext-observability-opentelemetry",
5
5
  "keywords": [
6
6
  "veryfront",
@@ -91,7 +91,7 @@
91
91
  "@opentelemetry/semantic-conventions": "1.41.1"
92
92
  },
93
93
  "peerDependencies": {
94
- "veryfront": "^0.1.1029"
94
+ "veryfront": "^0.1.1032"
95
95
  },
96
96
  "type": "module",
97
97
  "types": "./esm/index.d.ts",