@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 +1 -1
- package/esm/extensions/ext-observability-opentelemetry/src/index.d.ts +6 -0
- package/esm/extensions/ext-observability-opentelemetry/src/index.d.ts.map +1 -1
- package/esm/extensions/ext-observability-opentelemetry/src/index.js +98 -1
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +2 -2
package/esm/deno.js
CHANGED
|
@@ -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":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,4BAA4B,CAAC;AAKpC,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;AAG5C;;;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,qBAAqB,EAAE,MAAM,CAAC;IAC9B,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,uBAAuB,EAAE,OAAO,CAAC;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,2BAA2B,EAAE,MAAM,CAAC;IACpC,4BAA4B,EAAE,OAAO,GAAG,YAAY,GAAG,WAAW,CAAC;CACpE;AA6ED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;CAC/B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUzB;AAwKD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAkC3C;AAED,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,CA0D7B;
|
|
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;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veryfront/ext-observability-opentelemetry",
|
|
3
|
-
"version": "0.1.
|
|
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.
|
|
112
|
+
"veryfront": "^0.1.1042"
|
|
113
113
|
},
|
|
114
114
|
"type": "module",
|
|
115
115
|
"types": "./esm/extensions/ext-observability-opentelemetry/src/index.d.ts",
|