@veryfront/ext-observability-opentelemetry 0.1.1033 → 0.1.1036
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.d.ts +6 -0
- package/esm/deno.js +8 -2
- package/esm/extensions/ext-observability-opentelemetry/src/index.d.ts +3 -0
- package/esm/extensions/ext-observability-opentelemetry/src/index.d.ts.map +1 -1
- package/esm/extensions/ext-observability-opentelemetry/src/index.js +121 -22
- package/esm/src/observability/tracing/api-shim.d.ts +2 -1
- package/esm/src/observability/tracing/api-shim.d.ts.map +1 -1
- package/esm/src/observability/tracing/otlp-setup.d.ts +9 -6
- package/esm/src/observability/tracing/otlp-setup.d.ts.map +1 -1
- package/esm/src/observability/tracing/otlp-setup.js +4 -4
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +9 -2
package/esm/deno.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ declare namespace _default {
|
|
|
16
16
|
"./router": string;
|
|
17
17
|
"./context": string;
|
|
18
18
|
"./fonts": string;
|
|
19
|
+
"./ui": string;
|
|
20
|
+
"./ui/icons": string;
|
|
19
21
|
"./chat": string;
|
|
20
22
|
"./chat/ag-ui": string;
|
|
21
23
|
"./chat/protocol": string;
|
|
@@ -100,6 +102,10 @@ declare namespace _default {
|
|
|
100
102
|
"veryfront/react/fonts": string;
|
|
101
103
|
"veryfront/react/components/chat": string;
|
|
102
104
|
"veryfront/components/chat": string;
|
|
105
|
+
"veryfront/ui": string;
|
|
106
|
+
"veryfront/ui/icons": string;
|
|
107
|
+
"veryfront/react/components/ui": string;
|
|
108
|
+
"veryfront/components/ui": string;
|
|
103
109
|
"veryfront/sandbox": string;
|
|
104
110
|
"veryfront/embedding": string;
|
|
105
111
|
"veryfront/knowledge": string;
|
package/esm/deno.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"name": "veryfront",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1036",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"nodeModulesDir": "auto",
|
|
6
6
|
"minimumDependencyAge": {
|
|
@@ -73,6 +73,8 @@ export default {
|
|
|
73
73
|
"./router": "./src/react/router/index.tsx",
|
|
74
74
|
"./context": "./src/react/context/index.tsx",
|
|
75
75
|
"./fonts": "./src/react/fonts/index.ts",
|
|
76
|
+
"./ui": "./src/react/components/ui/index.ts",
|
|
77
|
+
"./ui/icons": "./src/react/components/ui/icons/index.ts",
|
|
76
78
|
"./chat": "./src/chat/index.ts",
|
|
77
79
|
"./chat/ag-ui": "./src/chat/ag-ui.ts",
|
|
78
80
|
"./chat/protocol": "./src/chat/protocol.ts",
|
|
@@ -157,6 +159,10 @@ export default {
|
|
|
157
159
|
"veryfront/react/fonts": "./src/react/fonts/index.ts",
|
|
158
160
|
"veryfront/react/components/chat": "./src/react/components/chat/index.ts",
|
|
159
161
|
"veryfront/components/chat": "./src/react/components/chat/index.ts",
|
|
162
|
+
"veryfront/ui": "./src/react/components/ui/index.ts",
|
|
163
|
+
"veryfront/ui/icons": "./src/react/components/ui/icons/index.ts",
|
|
164
|
+
"veryfront/react/components/ui": "./src/react/components/ui/index.ts",
|
|
165
|
+
"veryfront/components/ui": "./src/react/components/ui/index.ts",
|
|
160
166
|
"veryfront/sandbox": "./src/sandbox/index.ts",
|
|
161
167
|
"veryfront/embedding": "./src/embedding/index.ts",
|
|
162
168
|
"veryfront/knowledge": "./src/knowledge/index.ts",
|
|
@@ -416,7 +422,7 @@ export default {
|
|
|
416
422
|
"lint": "DENO_NO_PACKAGE_JSON=1 deno lint src/ cli/ react/ && deno lint --config=scripts/test.deno.json scripts/test/ scripts/build/npm-package-metadata.test.ts",
|
|
417
423
|
"fmt": "deno fmt src/ cli/ react/ && deno fmt --config=scripts/test.deno.json scripts/test/",
|
|
418
424
|
"fmt:check": "deno fmt --check src/ cli/ react/ && deno fmt --check --config=scripts/test.deno.json scripts/test/",
|
|
419
|
-
"typecheck": "deno task generate:manifests:check && deno check src/index.ts cli/main.ts src/server/index.ts src/routing/api/index.ts src/rendering/index.ts src/platform/index.ts src/platform/adapters/index.ts src/build/index.ts src/build/production-build/index.ts src/transforms/index.ts src/config/index.ts src/utils/index.ts src/data/index.ts src/security/index.ts src/middleware/index.ts src/server/handlers/dev/index.ts src/server/handlers/request/api/index.ts src/rendering/cache/index.ts src/rendering/cache/stores/index.ts src/rendering/rsc/actions/index.ts src/html/index.ts src/modules/index.ts src/proxy/main.ts src/chat/index.ts src/markdown/index.ts src/mdx/index.ts src/fs/index.ts src/oauth/index.ts src/agent/index.ts src/agent/service/route-export.check.ts src/eval/index.ts src/tool/index.ts src/workflow/index.ts src/prompt/index.ts src/resource/index.ts src/runs/index.ts src/mcp/index.ts src/provider/index.ts",
|
|
425
|
+
"typecheck": "deno task generate:manifests:check && deno check src/index.ts cli/main.ts src/server/index.ts src/routing/api/index.ts src/rendering/index.ts src/platform/index.ts src/platform/adapters/index.ts src/build/index.ts src/build/production-build/index.ts src/transforms/index.ts src/config/index.ts src/utils/index.ts src/data/index.ts src/security/index.ts src/middleware/index.ts src/server/handlers/dev/index.ts src/server/handlers/request/api/index.ts src/rendering/cache/index.ts src/rendering/cache/stores/index.ts src/rendering/rsc/actions/index.ts src/html/index.ts src/modules/index.ts src/proxy/main.ts src/react/components/ui/index.ts src/chat/index.ts src/markdown/index.ts src/mdx/index.ts src/fs/index.ts src/oauth/index.ts src/agent/index.ts src/agent/service/route-export.check.ts src/eval/index.ts src/tool/index.ts src/workflow/index.ts src/prompt/index.ts src/resource/index.ts src/runs/index.ts src/mcp/index.ts src/provider/index.ts",
|
|
420
426
|
"verify": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:chat-composability && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:core-deps && deno task lint:dependency-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:validate && deno task typecheck && deno task test && deno task test:e2e:binary",
|
|
421
427
|
"verify:quick": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:chat-composability && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:core-deps && deno task lint:dependency-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:validate && deno task typecheck",
|
|
422
428
|
"docs": "deno run --allow-read --allow-write --allow-run --allow-env scripts/docs/generate-api-reference.ts",
|
|
@@ -45,11 +45,14 @@ export interface ResolvedOtlpExtensionConfig {
|
|
|
45
45
|
metricsHeaders: Record<string, string>;
|
|
46
46
|
logsHeaders: Record<string, string>;
|
|
47
47
|
tracesEnabled: boolean;
|
|
48
|
+
llmObservabilityEnabled: boolean;
|
|
48
49
|
metricsEnabled: boolean;
|
|
49
50
|
logsEnabled: boolean;
|
|
50
51
|
tracesUrl: string | undefined;
|
|
52
|
+
llmObservabilityUrl: string | undefined;
|
|
51
53
|
metricsUrl: string | undefined;
|
|
52
54
|
logsUrl: string | undefined;
|
|
55
|
+
llmObservabilityHeaders: Record<string, string>;
|
|
53
56
|
metricsExportIntervalMillis: number;
|
|
54
57
|
metricsTemporalityPreference: "delta" | "cumulative" | "lowmemory";
|
|
55
58
|
}
|
|
@@ -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,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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/extensions/ext-observability-opentelemetry/src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -165,6 +165,40 @@ function resolveDeploymentEnvironment(read, resourceAttributes) {
|
|
|
165
165
|
function headersOrDefault(signalHeaders, defaultHeaders) {
|
|
166
166
|
return signalHeaders ?? defaultHeaders;
|
|
167
167
|
}
|
|
168
|
+
function getHeaderValue(headers, headerName) {
|
|
169
|
+
const normalizedName = headerName.toLowerCase();
|
|
170
|
+
return Object.entries(headers ?? {}).find(([key]) => key.toLowerCase() === normalizedName)?.[1];
|
|
171
|
+
}
|
|
172
|
+
function setHeaderValue(headers, headerName, value) {
|
|
173
|
+
const normalizedName = headerName.toLowerCase();
|
|
174
|
+
for (const key of Object.keys(headers)) {
|
|
175
|
+
if (key.toLowerCase() === normalizedName && key !== headerName) {
|
|
176
|
+
delete headers[key];
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
headers[headerName] = value;
|
|
180
|
+
}
|
|
181
|
+
function resolveLlmObservabilityEnabled(read, tracesHeaders) {
|
|
182
|
+
const explicitFlag = isTruthySignalFlag(read("DD_LLMOBS_ENABLED") ?? read("OTEL_LLMOBS_ENABLED"));
|
|
183
|
+
if (explicitFlag !== undefined)
|
|
184
|
+
return explicitFlag;
|
|
185
|
+
return getHeaderValue(tracesHeaders, "dd-otlp-source") === "llmobs";
|
|
186
|
+
}
|
|
187
|
+
function resolveLlmObservabilityHeaders(read, tracesHeaders) {
|
|
188
|
+
const headers = { ...tracesHeaders };
|
|
189
|
+
const datadogApiKey = getHeaderValue(headers, "dd-api-key") ??
|
|
190
|
+
read("DD_API_KEY") ??
|
|
191
|
+
read("DATADOG_OTLP_API_KEY");
|
|
192
|
+
if (datadogApiKey) {
|
|
193
|
+
setHeaderValue(headers, "dd-api-key", datadogApiKey);
|
|
194
|
+
}
|
|
195
|
+
setHeaderValue(headers, "dd-otlp-source", "llmobs");
|
|
196
|
+
const mlApp = read("DD_LLMOBS_ML_APP");
|
|
197
|
+
if (mlApp) {
|
|
198
|
+
setHeaderValue(headers, "dd-ml-app", mlApp);
|
|
199
|
+
}
|
|
200
|
+
return headers;
|
|
201
|
+
}
|
|
168
202
|
function metricTemporalityPreference(otel, preference) {
|
|
169
203
|
const enumValue = otel.metricsExporter.AggregationTemporalityPreference;
|
|
170
204
|
if (preference === "cumulative")
|
|
@@ -328,6 +362,9 @@ export function resolveOtlpExtensionConfig(read = readEnv) {
|
|
|
328
362
|
const resourceAttributes = parseResourceAttributes(read("OTEL_RESOURCE_ATTRIBUTES"));
|
|
329
363
|
const endpoint = read("OTEL_EXPORTER_OTLP_ENDPOINT");
|
|
330
364
|
const tracesEndpoint = read("OTEL_EXPORTER_OTLP_TRACES_ENDPOINT") ?? endpoint;
|
|
365
|
+
const llmObservabilityEndpoint = read("OTEL_EXPORTER_OTLP_LLMOBS_ENDPOINT") ??
|
|
366
|
+
read("DD_LLMOBS_OTLP_ENDPOINT") ??
|
|
367
|
+
tracesEndpoint;
|
|
331
368
|
const metricsEndpoint = read("OTEL_EXPORTER_OTLP_METRICS_ENDPOINT") ?? endpoint;
|
|
332
369
|
const logsEndpoint = read("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT") ?? endpoint;
|
|
333
370
|
const metricsExportIntervalMillis = Number.parseInt(read("OTEL_METRIC_EXPORT_INTERVAL") ?? "60000", 10);
|
|
@@ -335,6 +372,7 @@ export function resolveOtlpExtensionConfig(read = readEnv) {
|
|
|
335
372
|
const tracesHeaders = mergeHeaders(headers, parseHeaders(read("OTEL_EXPORTER_OTLP_TRACES_HEADERS")));
|
|
336
373
|
const metricsHeaders = mergeHeaders(headers, parseHeaders(read("OTEL_EXPORTER_OTLP_METRICS_HEADERS")));
|
|
337
374
|
const logsHeaders = mergeHeaders(headers, parseHeaders(read("OTEL_EXPORTER_OTLP_LOGS_HEADERS")));
|
|
375
|
+
const llmObservabilityHeaders = resolveLlmObservabilityHeaders(read, tracesHeaders);
|
|
338
376
|
return {
|
|
339
377
|
serviceName: resolveServiceName(read, resourceAttributes),
|
|
340
378
|
serviceVersion: resolveServiceVersion(read, resourceAttributes),
|
|
@@ -343,10 +381,13 @@ export function resolveOtlpExtensionConfig(read = readEnv) {
|
|
|
343
381
|
tracesHeaders,
|
|
344
382
|
metricsHeaders,
|
|
345
383
|
logsHeaders,
|
|
384
|
+
llmObservabilityHeaders,
|
|
346
385
|
tracesEnabled: resolveSignalEnabled(read("OTEL_TRACES_ENABLED"), read("OTEL_TRACES_EXPORTER")),
|
|
386
|
+
llmObservabilityEnabled: resolveLlmObservabilityEnabled(read, tracesHeaders),
|
|
347
387
|
metricsEnabled: resolveSignalEnabled(read("OTEL_METRICS_ENABLED"), read("OTEL_METRICS_EXPORTER")),
|
|
348
388
|
logsEnabled: resolveSignalEnabled(read("OTEL_LOGS_ENABLED"), read("OTEL_LOGS_EXPORTER")),
|
|
349
389
|
tracesUrl: resolveOtlpSignalUrl(tracesEndpoint, "traces"),
|
|
390
|
+
llmObservabilityUrl: resolveOtlpSignalUrl(llmObservabilityEndpoint, "traces"),
|
|
350
391
|
metricsUrl: resolveOtlpSignalUrl(metricsEndpoint, "metrics"),
|
|
351
392
|
logsUrl: resolveOtlpSignalUrl(logsEndpoint, "logs"),
|
|
352
393
|
metricsExportIntervalMillis: Number.isFinite(metricsExportIntervalMillis)
|
|
@@ -355,6 +396,34 @@ export function resolveOtlpExtensionConfig(read = readEnv) {
|
|
|
355
396
|
metricsTemporalityPreference: resolveMetricsTemporalityPreference(read("OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE")),
|
|
356
397
|
};
|
|
357
398
|
}
|
|
399
|
+
function isGenAiSpan(span) {
|
|
400
|
+
const attributes = span.attributes;
|
|
401
|
+
return typeof attributes?.["gen_ai.operation.name"] === "string";
|
|
402
|
+
}
|
|
403
|
+
class FilteringSpanExporter {
|
|
404
|
+
delegate;
|
|
405
|
+
includeSpan;
|
|
406
|
+
successCode;
|
|
407
|
+
constructor(delegate, includeSpan, successCode) {
|
|
408
|
+
this.delegate = delegate;
|
|
409
|
+
this.includeSpan = includeSpan;
|
|
410
|
+
this.successCode = successCode;
|
|
411
|
+
}
|
|
412
|
+
export(spans, resultCallback) {
|
|
413
|
+
const includedSpans = spans.filter(this.includeSpan);
|
|
414
|
+
if (includedSpans.length === 0) {
|
|
415
|
+
resultCallback({ code: this.successCode });
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
418
|
+
this.delegate.export(includedSpans, resultCallback);
|
|
419
|
+
}
|
|
420
|
+
shutdown() {
|
|
421
|
+
return this.delegate.shutdown();
|
|
422
|
+
}
|
|
423
|
+
forceFlush() {
|
|
424
|
+
return this.delegate.forceFlush?.() ?? Promise.resolve();
|
|
425
|
+
}
|
|
426
|
+
}
|
|
358
427
|
class OtlpTracingExporter {
|
|
359
428
|
sdkProvider = null;
|
|
360
429
|
meterProvider = null;
|
|
@@ -365,10 +434,11 @@ class OtlpTracingExporter {
|
|
|
365
434
|
logRecordEmitter = null;
|
|
366
435
|
async start(_ctxConfig) {
|
|
367
436
|
const cfg = resolveOtlpExtensionConfig(readEnv);
|
|
368
|
-
// Honor
|
|
369
|
-
//
|
|
370
|
-
if (!cfg.tracesEnabled && !cfg.metricsEnabled && !cfg.logsEnabled)
|
|
437
|
+
// Honor signal gates: when unset/false, skip exporter wiring so deployments
|
|
438
|
+
// opting out never create OTLP traffic or set globals.
|
|
439
|
+
if (!cfg.tracesEnabled && !cfg.llmObservabilityEnabled && !cfg.metricsEnabled && !cfg.logsEnabled) {
|
|
371
440
|
return;
|
|
441
|
+
}
|
|
372
442
|
const otel = await loadOpenTelemetryRuntime();
|
|
373
443
|
const resource = otel.resources.resourceFromAttributes({
|
|
374
444
|
[otel.semanticConventions.ATTR_SERVICE_NAME]: cfg.serviceName,
|
|
@@ -376,17 +446,29 @@ class OtlpTracingExporter {
|
|
|
376
446
|
"deployment.environment": cfg.deploymentEnvironment,
|
|
377
447
|
"deployment.environment.name": cfg.deploymentEnvironment,
|
|
378
448
|
});
|
|
379
|
-
if (cfg.tracesEnabled) {
|
|
380
|
-
if (!cfg.tracesUrl) {
|
|
449
|
+
if (cfg.tracesEnabled || cfg.llmObservabilityEnabled) {
|
|
450
|
+
if (cfg.tracesEnabled && !cfg.tracesUrl) {
|
|
381
451
|
throw new Error("OTEL_TRACES_ENABLED=true requires OTEL_EXPORTER_OTLP_ENDPOINT or OTEL_EXPORTER_OTLP_TRACES_ENDPOINT");
|
|
382
452
|
}
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
453
|
+
if (cfg.llmObservabilityEnabled && !cfg.llmObservabilityUrl) {
|
|
454
|
+
throw new Error("DD_LLMOBS_ENABLED=true requires OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_TRACES_ENDPOINT, or OTEL_EXPORTER_OTLP_LLMOBS_ENDPOINT");
|
|
455
|
+
}
|
|
456
|
+
const spanProcessors = [];
|
|
457
|
+
if (cfg.tracesEnabled && cfg.tracesUrl) {
|
|
458
|
+
spanProcessors.push(new otel.sdkTraceBase.BatchSpanProcessor(new otel.traceExporter.OTLPTraceExporter({
|
|
459
|
+
url: cfg.tracesUrl,
|
|
460
|
+
headers: cfg.tracesHeaders,
|
|
461
|
+
})));
|
|
462
|
+
}
|
|
463
|
+
if (cfg.llmObservabilityEnabled && cfg.llmObservabilityUrl) {
|
|
464
|
+
spanProcessors.push(new otel.sdkTraceBase.BatchSpanProcessor(new FilteringSpanExporter(new otel.traceExporter.OTLPTraceExporter({
|
|
465
|
+
url: cfg.llmObservabilityUrl,
|
|
466
|
+
headers: cfg.llmObservabilityHeaders,
|
|
467
|
+
}), isGenAiSpan, otel.core.ExportResultCode.SUCCESS)));
|
|
468
|
+
}
|
|
387
469
|
const provider = new otel.sdkTraceBase.BasicTracerProvider({
|
|
388
470
|
resource,
|
|
389
|
-
spanProcessors
|
|
471
|
+
spanProcessors,
|
|
390
472
|
});
|
|
391
473
|
// Wire OTel SDK globals so the real API delegates to this provider.
|
|
392
474
|
// The shim also gets wired separately in bootstrap.ts via getProvider().
|
|
@@ -516,9 +598,10 @@ class OpenTelemetryNodeTelemetryProvider {
|
|
|
516
598
|
sdk = null;
|
|
517
599
|
async initialize(options) {
|
|
518
600
|
const tracesEnabled = options.tracesEnabled ?? true;
|
|
601
|
+
const llmObservabilityEnabled = options.llmObservabilityEnabled ?? false;
|
|
519
602
|
const metricsEnabled = options.metricsEnabled ?? false;
|
|
520
603
|
const logsEnabled = options.logsEnabled ?? false;
|
|
521
|
-
if (!tracesEnabled && !metricsEnabled && !logsEnabled)
|
|
604
|
+
if (!tracesEnabled && !llmObservabilityEnabled && !metricsEnabled && !logsEnabled)
|
|
522
605
|
return false;
|
|
523
606
|
const otel = await loadOpenTelemetryRuntime();
|
|
524
607
|
const resource = otel.resources.resourceFromAttributes({
|
|
@@ -527,17 +610,25 @@ class OpenTelemetryNodeTelemetryProvider {
|
|
|
527
610
|
"deployment.environment": options.deploymentEnvironment,
|
|
528
611
|
"deployment.environment.name": options.deploymentEnvironment,
|
|
529
612
|
});
|
|
530
|
-
const spanProcessors =
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
613
|
+
const spanProcessors = [];
|
|
614
|
+
if (tracesEnabled) {
|
|
615
|
+
spanProcessors.push(new otel.sdkTraceBase.BatchSpanProcessor(new otel.traceExporter.OTLPTraceExporter({
|
|
616
|
+
url: options.tracesEndpoint,
|
|
617
|
+
headers: headersOrDefault(options.tracesHeaders, options.exporterHeaders),
|
|
618
|
+
}), {
|
|
619
|
+
maxExportBatchSize: 100,
|
|
620
|
+
scheduledDelayMillis: 500,
|
|
621
|
+
}));
|
|
622
|
+
}
|
|
623
|
+
if (llmObservabilityEnabled) {
|
|
624
|
+
spanProcessors.push(new otel.sdkTraceBase.BatchSpanProcessor(new FilteringSpanExporter(new otel.traceExporter.OTLPTraceExporter({
|
|
625
|
+
url: options.llmObservabilityEndpoint ?? options.tracesEndpoint,
|
|
626
|
+
headers: headersOrDefault(options.llmObservabilityHeaders, options.tracesHeaders),
|
|
627
|
+
}), isGenAiSpan, otel.core.ExportResultCode.SUCCESS), {
|
|
628
|
+
maxExportBatchSize: 100,
|
|
629
|
+
scheduledDelayMillis: 500,
|
|
630
|
+
}));
|
|
631
|
+
}
|
|
541
632
|
const metricReaders = metricsEnabled
|
|
542
633
|
? [
|
|
543
634
|
new otel.sdkMetrics.PeriodicExportingMetricReader({
|
|
@@ -612,6 +703,7 @@ class OpenTelemetryNodeTelemetryProvider {
|
|
|
612
703
|
tracesEnabled,
|
|
613
704
|
metricsEnabled,
|
|
614
705
|
logsEnabled,
|
|
706
|
+
llmObservabilityEnabled,
|
|
615
707
|
});
|
|
616
708
|
options.processTarget?.on("SIGTERM", async () => {
|
|
617
709
|
await this.shutdown();
|
|
@@ -652,6 +744,7 @@ const extOpenTelemetry = () => {
|
|
|
652
744
|
keys: [
|
|
653
745
|
"OTEL_EXPORTER_OTLP_ENDPOINT",
|
|
654
746
|
"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT",
|
|
747
|
+
"OTEL_EXPORTER_OTLP_LLMOBS_ENDPOINT",
|
|
655
748
|
"OTEL_EXPORTER_OTLP_METRICS_ENDPOINT",
|
|
656
749
|
"OTEL_EXPORTER_OTLP_LOGS_ENDPOINT",
|
|
657
750
|
"OTEL_EXPORTER_OTLP_HEADERS",
|
|
@@ -665,6 +758,12 @@ const extOpenTelemetry = () => {
|
|
|
665
758
|
"DD_SERVICE",
|
|
666
759
|
"DD_VERSION",
|
|
667
760
|
"DD_ENV",
|
|
761
|
+
"DD_API_KEY",
|
|
762
|
+
"DATADOG_OTLP_API_KEY",
|
|
763
|
+
"DD_LLMOBS_ENABLED",
|
|
764
|
+
"DD_LLMOBS_ML_APP",
|
|
765
|
+
"DD_LLMOBS_OTLP_ENDPOINT",
|
|
766
|
+
"OTEL_LLMOBS_ENABLED",
|
|
668
767
|
"VERYFRONT_VERSION",
|
|
669
768
|
"RELEASE_VERSION",
|
|
670
769
|
"APP_ENVIRONMENT",
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
*
|
|
19
19
|
* @module observability/tracing/api-shim
|
|
20
20
|
*/
|
|
21
|
-
export type
|
|
21
|
+
export type AttributePrimitive = string | number | boolean;
|
|
22
|
+
export type AttributeValue = AttributePrimitive | readonly AttributePrimitive[] | undefined;
|
|
22
23
|
export interface Span {
|
|
23
24
|
setAttribute(key: string, value: AttributeValue): Span;
|
|
24
25
|
setAttributes(attrs: Record<string, AttributeValue>): Span;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-shim.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/tracing/api-shim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AASH,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"api-shim.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/tracing/api-shim.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* - OTEL_EXPORTER_OTLP_ENDPOINT: OTLP endpoint
|
|
12
12
|
* - OTEL_EXPORTER_OTLP_HEADERS: Auth headers
|
|
13
13
|
**************************/
|
|
14
|
-
import { type Context, type Span } from "./api-shim.js";
|
|
14
|
+
import { type AttributeValue, type Context, type Span, SpanKind } from "./api-shim.js";
|
|
15
15
|
/** Configuration used by otlpconfig. */
|
|
16
16
|
export interface OTLPConfig {
|
|
17
17
|
serviceName: string;
|
|
@@ -27,10 +27,13 @@ export declare function shutdownOTLP(): Promise<void>;
|
|
|
27
27
|
export declare function isOTLPEnabled(): boolean;
|
|
28
28
|
/** Initialize OTLP tracing with explicit API adapters. */
|
|
29
29
|
export declare function initializeOTLPWithApis(): Promise<void>;
|
|
30
|
+
export type WithSpanOptions = {
|
|
31
|
+
kind?: SpanKind;
|
|
32
|
+
};
|
|
30
33
|
/** Applies span. */
|
|
31
|
-
export declare function withSpan<T>(name: string, fn: (span: Span) => Promise<T>, attributes?: Record<string,
|
|
34
|
+
export declare function withSpan<T>(name: string, fn: (span: Span) => Promise<T>, attributes?: Record<string, AttributeValue>, options?: WithSpanOptions): Promise<T>;
|
|
32
35
|
/** Applies span sync. */
|
|
33
|
-
export declare function withSpanSync<T>(name: string, fn: () => T, attributes?: Record<string,
|
|
36
|
+
export declare function withSpanSync<T>(name: string, fn: () => T, attributes?: Record<string, AttributeValue>, options?: WithSpanOptions): T;
|
|
34
37
|
/** Context for extract. */
|
|
35
38
|
export declare function extractContext(headers: Headers): Context | undefined;
|
|
36
39
|
/** Context for inject. */
|
|
@@ -43,11 +46,11 @@ export declare function startServerSpan(method: string, path: string, parentCont
|
|
|
43
46
|
/** End an active server tracing span. */
|
|
44
47
|
export declare function endServerSpan(span: unknown, statusCode: number, error?: Error): void;
|
|
45
48
|
/** Sets span attributes. */
|
|
46
|
-
export declare function setSpanAttributes(span: unknown, attributes: Record<string,
|
|
49
|
+
export declare function setSpanAttributes(span: unknown, attributes: Record<string, AttributeValue>): void;
|
|
47
50
|
/** Adds an event to a span. */
|
|
48
|
-
export declare function addSpanEvent(span: unknown, name: string, attributes?: Record<string,
|
|
51
|
+
export declare function addSpanEvent(span: unknown, name: string, attributes?: Record<string, AttributeValue>): void;
|
|
49
52
|
/** Sets active span attributes. */
|
|
50
|
-
export declare function setActiveSpanAttributes(attributes: Record<string,
|
|
53
|
+
export declare function setActiveSpanAttributes(attributes: Record<string, AttributeValue>): void;
|
|
51
54
|
/** Context for with. */
|
|
52
55
|
export declare function withContext<T>(spanContext: unknown, fn: () => Promise<T>): Promise<T>;
|
|
53
56
|
/** Context for get trace. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otlp-setup.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/tracing/otlp-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;4BAY4B;AAI5B,OAAO,EACL,KAAK,OAAO,EAOZ,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"otlp-setup.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/tracing/otlp-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -98,10 +98,10 @@ function setSpanErrorStatus(span, error) {
|
|
|
98
98
|
span.recordException(error);
|
|
99
99
|
}
|
|
100
100
|
/** Applies span. */
|
|
101
|
-
export async function withSpan(name, fn, attributes) {
|
|
101
|
+
export async function withSpan(name, fn, attributes, options) {
|
|
102
102
|
const { tracer } = getTracingRuntime();
|
|
103
103
|
const parentContext = shimContext.active();
|
|
104
|
-
const span = tracer.startSpan(name, { kind: SpanKind.INTERNAL, attributes }, parentContext);
|
|
104
|
+
const span = tracer.startSpan(name, { kind: options?.kind ?? SpanKind.INTERNAL, attributes }, parentContext);
|
|
105
105
|
const spanContext = shimTrace.setSpan(parentContext, span);
|
|
106
106
|
try {
|
|
107
107
|
const result = await shimContext.with(spanContext, () => fn(span));
|
|
@@ -117,10 +117,10 @@ export async function withSpan(name, fn, attributes) {
|
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
/** Applies span sync. */
|
|
120
|
-
export function withSpanSync(name, fn, attributes) {
|
|
120
|
+
export function withSpanSync(name, fn, attributes, options) {
|
|
121
121
|
const { tracer } = getTracingRuntime();
|
|
122
122
|
const parentContext = shimContext.active();
|
|
123
|
-
const span = tracer.startSpan(name, { kind: SpanKind.INTERNAL, attributes }, parentContext);
|
|
123
|
+
const span = tracer.startSpan(name, { kind: options?.kind ?? SpanKind.INTERNAL, attributes }, parentContext);
|
|
124
124
|
try {
|
|
125
125
|
const result = fn();
|
|
126
126
|
span.setStatus({ code: SpanStatusCode.OK });
|
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.1036",
|
|
4
4
|
"description": "Veryfront first-party extension package for ext-observability-opentelemetry",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"veryfront",
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"keys": [
|
|
53
53
|
"OTEL_EXPORTER_OTLP_ENDPOINT",
|
|
54
54
|
"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT",
|
|
55
|
+
"OTEL_EXPORTER_OTLP_LLMOBS_ENDPOINT",
|
|
55
56
|
"OTEL_EXPORTER_OTLP_METRICS_ENDPOINT",
|
|
56
57
|
"OTEL_EXPORTER_OTLP_LOGS_ENDPOINT",
|
|
57
58
|
"OTEL_EXPORTER_OTLP_HEADERS",
|
|
@@ -66,6 +67,7 @@
|
|
|
66
67
|
"OTEL_METRICS_ENABLED",
|
|
67
68
|
"OTEL_LOGS_ENABLED",
|
|
68
69
|
"OTEL_TRACES_EXPORTER",
|
|
70
|
+
"OTEL_LLMOBS_ENABLED",
|
|
69
71
|
"OTEL_METRICS_EXPORTER",
|
|
70
72
|
"OTEL_LOGS_EXPORTER",
|
|
71
73
|
"OTEL_METRIC_EXPORT_INTERVAL",
|
|
@@ -73,6 +75,11 @@
|
|
|
73
75
|
"DD_SERVICE",
|
|
74
76
|
"DD_VERSION",
|
|
75
77
|
"DD_ENV",
|
|
78
|
+
"DD_API_KEY",
|
|
79
|
+
"DATADOG_OTLP_API_KEY",
|
|
80
|
+
"DD_LLMOBS_ENABLED",
|
|
81
|
+
"DD_LLMOBS_ML_APP",
|
|
82
|
+
"DD_LLMOBS_OTLP_ENDPOINT",
|
|
76
83
|
"VERYFRONT_VERSION",
|
|
77
84
|
"RELEASE_VERSION",
|
|
78
85
|
"APP_ENVIRONMENT",
|
|
@@ -102,7 +109,7 @@
|
|
|
102
109
|
"@opentelemetry/semantic-conventions": "1.41.1"
|
|
103
110
|
},
|
|
104
111
|
"peerDependencies": {
|
|
105
|
-
"veryfront": "^0.1.
|
|
112
|
+
"veryfront": "^0.1.1036"
|
|
106
113
|
},
|
|
107
114
|
"type": "module",
|
|
108
115
|
"types": "./esm/extensions/ext-observability-opentelemetry/src/index.d.ts",
|