@veryfront/ext-observability-opentelemetry 0.1.1041 → 0.1.1042

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/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.1041",
3
+ "version": "0.1.1042",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "minimumDependencyAge": {
@@ -64,6 +64,12 @@ export declare function unifiedServiceResourceAttributes(options: {
64
64
  export declare function logAttributes(record: NodeTelemetryLogRecord): Record<string, string | number | boolean>;
65
65
  export declare function resolveOtlpSignalUrl(endpoint: string | undefined, signal: "traces" | "metrics" | "logs"): string | undefined;
66
66
  export declare function resolveOtlpExtensionConfig(read?: EnvReader): ResolvedOtlpExtensionConfig;
67
+ type LlmObservabilityServiceIdentity = {
68
+ serviceName: string;
69
+ serviceVersion: string;
70
+ deploymentEnvironment: string;
71
+ };
72
+ export declare function rewriteLlmObservabilitySpanResource(span: unknown, fallback?: LlmObservabilityServiceIdentity): unknown;
67
73
  declare class OtlpTracingExporter implements TracingExporter {
68
74
  private sdkProvider;
69
75
  private meterProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/extensions/ext-observability-opentelemetry/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/extensions/ext-observability-opentelemetry/src/index.ts"],"names":[],"mappings":"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"}
@@ -416,6 +416,103 @@ function isGenAiSpan(span) {
416
416
  const attributes = span.attributes;
417
417
  return typeof attributes?.["gen_ai.operation.name"] === "string";
418
418
  }
419
+ function getStringAttribute(attributes, key) {
420
+ const value = attributes?.[key];
421
+ if (typeof value !== "string")
422
+ return undefined;
423
+ const trimmed = value.trim();
424
+ return trimmed.length > 0 ? trimmed : undefined;
425
+ }
426
+ function getSpanTraceId(span) {
427
+ const context = span.spanContext;
428
+ const spanContext = typeof context === "function" ? context.call(span) : context;
429
+ return typeof spanContext?.traceId === "string" ? spanContext.traceId : undefined;
430
+ }
431
+ function resolveLlmObservabilityServiceIdentity(span, fallback) {
432
+ const readableSpan = span;
433
+ const spanAttributes = readableSpan.attributes;
434
+ const resourceAttributes = readableSpan.resource?.attributes;
435
+ const serviceName = getStringAttribute(spanAttributes, "service.name") ??
436
+ getStringAttribute(spanAttributes, "service") ??
437
+ fallback?.serviceName;
438
+ if (!serviceName)
439
+ return null;
440
+ const serviceVersion = getStringAttribute(spanAttributes, "service.version") ??
441
+ getStringAttribute(spanAttributes, "version") ??
442
+ fallback?.serviceVersion ??
443
+ getStringAttribute(resourceAttributes, "service.version") ??
444
+ getStringAttribute(resourceAttributes, "version") ??
445
+ VERSION;
446
+ const deploymentEnvironment = getStringAttribute(spanAttributes, "deployment.environment.name") ??
447
+ getStringAttribute(spanAttributes, "deployment.environment") ??
448
+ getStringAttribute(spanAttributes, "env") ??
449
+ fallback?.deploymentEnvironment ??
450
+ getStringAttribute(resourceAttributes, "deployment.environment.name") ??
451
+ getStringAttribute(resourceAttributes, "deployment.environment") ??
452
+ getStringAttribute(resourceAttributes, "env") ??
453
+ "development";
454
+ return { serviceName, serviceVersion, deploymentEnvironment };
455
+ }
456
+ function cloneResourceWithAttributes(resource, attributes) {
457
+ if (!resource)
458
+ return { attributes };
459
+ const clone = Object.create(Object.getPrototypeOf(resource));
460
+ Object.defineProperties(clone, Object.getOwnPropertyDescriptors(resource));
461
+ Object.defineProperty(clone, "attributes", {
462
+ configurable: true,
463
+ enumerable: true,
464
+ writable: true,
465
+ value: {
466
+ ...(resource.attributes ?? {}),
467
+ ...attributes,
468
+ },
469
+ });
470
+ return clone;
471
+ }
472
+ function cloneInstrumentationScopeWithName(instrumentationScope, name) {
473
+ return {
474
+ ...(instrumentationScope ?? {}),
475
+ name,
476
+ };
477
+ }
478
+ function cloneReadableSpanWithResource(span, resource, instrumentationScope) {
479
+ const clone = Object.create(Object.getPrototypeOf(span));
480
+ Object.defineProperties(clone, Object.getOwnPropertyDescriptors(span));
481
+ Object.defineProperty(clone, "resource", {
482
+ configurable: true,
483
+ enumerable: true,
484
+ writable: true,
485
+ value: resource,
486
+ });
487
+ Object.defineProperty(clone, "instrumentationScope", {
488
+ configurable: true,
489
+ enumerable: true,
490
+ writable: true,
491
+ value: instrumentationScope,
492
+ });
493
+ return clone;
494
+ }
495
+ export function rewriteLlmObservabilitySpanResource(span, fallback) {
496
+ const identity = resolveLlmObservabilityServiceIdentity(span, fallback);
497
+ if (!identity)
498
+ return span;
499
+ const readableSpan = span;
500
+ const resource = cloneResourceWithAttributes(readableSpan.resource, unifiedServiceResourceAttributes(identity));
501
+ const instrumentationScope = cloneInstrumentationScopeWithName(readableSpan.instrumentationScope, identity.serviceName);
502
+ return cloneReadableSpanWithResource(span, resource, instrumentationScope);
503
+ }
504
+ function rewriteLlmObservabilitySpanResources(spans) {
505
+ const identitiesByTraceId = new Map();
506
+ for (const span of spans) {
507
+ const traceId = getSpanTraceId(span);
508
+ if (!traceId)
509
+ continue;
510
+ const identity = resolveLlmObservabilityServiceIdentity(span);
511
+ if (identity)
512
+ identitiesByTraceId.set(traceId, identity);
513
+ }
514
+ return spans.map((span) => rewriteLlmObservabilitySpanResource(span, identitiesByTraceId.get(getSpanTraceId(span) ?? "")));
515
+ }
419
516
  class FilteringSpanExporter {
420
517
  delegate;
421
518
  includeSpan;
@@ -426,7 +523,7 @@ class FilteringSpanExporter {
426
523
  this.successCode = successCode;
427
524
  }
428
525
  export(spans, resultCallback) {
429
- const includedSpans = spans.filter(this.includeSpan);
526
+ const includedSpans = rewriteLlmObservabilitySpanResources(spans.filter(this.includeSpan));
430
527
  if (includedSpans.length === 0) {
431
528
  resultCallback({ code: this.successCode });
432
529
  return;
@@ -1,3 +1,3 @@
1
1
  /** Shared version value. */
2
- export declare const VERSION = "0.1.1041";
2
+ export declare const VERSION = "0.1.1042";
3
3
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,4 +1,4 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
3
  /** Shared version value. */
4
- export const VERSION = "0.1.1041";
4
+ export const VERSION = "0.1.1042";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veryfront/ext-observability-opentelemetry",
3
- "version": "0.1.1041",
3
+ "version": "0.1.1042",
4
4
  "description": "Veryfront first-party extension package for ext-observability-opentelemetry",
5
5
  "keywords": [
6
6
  "veryfront",
@@ -109,7 +109,7 @@
109
109
  "@opentelemetry/semantic-conventions": "1.41.1"
110
110
  },
111
111
  "peerDependencies": {
112
- "veryfront": "^0.1.1041"
112
+ "veryfront": "^0.1.1042"
113
113
  },
114
114
  "type": "module",
115
115
  "types": "./esm/extensions/ext-observability-opentelemetry/src/index.d.ts",