@arizeai/phoenix-otel 0.4.2 → 0.4.3
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/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/register.d.ts +21 -0
- package/dist/esm/register.d.ts.map +1 -1
- package/dist/esm/register.js +135 -2
- package/dist/esm/register.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/register.d.ts +21 -0
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +136 -1
- package/dist/src/register.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/manual-spans.mdx +99 -0
- package/docs/overview.mdx +248 -0
- package/package.json +7 -2
- package/src/index.ts +1 -0
- package/src/register.ts +229 -2
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { trace, context, DiagLogLevel, type Tracer, SpanStatusCode, } from "@opentelemetry/api";
|
|
2
|
+
export { suppressTracing } from "@opentelemetry/core";
|
|
2
3
|
export { registerInstrumentations } from "@opentelemetry/instrumentation";
|
|
3
4
|
export { type Instrumentation } from "@opentelemetry/instrumentation";
|
|
4
5
|
export { type NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EACP,YAAY,EACZ,KAAK,MAAM,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EACP,YAAY,EACZ,KAAK,MAAM,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { trace, context, DiagLogLevel, SpanStatusCode, } from "@opentelemetry/api";
|
|
2
|
+
export { suppressTracing } from "@opentelemetry/core";
|
|
2
3
|
export { registerInstrumentations } from "@opentelemetry/instrumentation";
|
|
3
4
|
// Phoenix abstractions
|
|
4
5
|
export * from "./createNoOpProvider.js";
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EACP,YAAY,EAEZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAI1E,uBAAuB;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EACP,YAAY,EAEZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAI1E,uBAAuB;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
|
package/dist/esm/register.d.ts
CHANGED
|
@@ -131,6 +131,27 @@ export type RegisterParams = {
|
|
|
131
131
|
*/
|
|
132
132
|
diagLogLevel?: DiagLogLevel;
|
|
133
133
|
};
|
|
134
|
+
export type GlobalTracerProviderRegistration = {
|
|
135
|
+
/**
|
|
136
|
+
* Detach the global tracer provider and reset global tracing APIs to no-op state.
|
|
137
|
+
*
|
|
138
|
+
* This clears the OpenTelemetry tracer provider, context manager, and propagator
|
|
139
|
+
* so a different provider can be attached later in the same process.
|
|
140
|
+
*/
|
|
141
|
+
detach: () => void;
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* Detaches the current global OpenTelemetry tracer provider and resets the
|
|
145
|
+
* global trace, context, and propagation APIs.
|
|
146
|
+
*/
|
|
147
|
+
export declare function detachGlobalTracerProvider(): void;
|
|
148
|
+
/**
|
|
149
|
+
* Attaches an existing tracer provider as the global OpenTelemetry provider.
|
|
150
|
+
*
|
|
151
|
+
* Returns a handle that can be used to detach it later so another provider can
|
|
152
|
+
* be attached in the same process.
|
|
153
|
+
*/
|
|
154
|
+
export declare function attachGlobalTracerProvider(provider: NodeTracerProvider): GlobalTracerProviderRegistration;
|
|
134
155
|
/**
|
|
135
156
|
* Registers Phoenix OpenTelemetry tracing with the specified configuration.
|
|
136
157
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAkBvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAInE;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;OASG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IAErC;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IAEjC;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C;;;;;OAKG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AA+IF;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,kBAAkB,GAC3B,gCAAgC,CAmBlC;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiFG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,kBAAkB,CAiCnE;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,aAAkB,EAC3B,KAAY,GACb,EAAE,IAAI,CACL,cAAc,EACd,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CACvC,GAAG,aAAa,CAuBhB;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAa3D"}
|
package/dist/esm/register.js
CHANGED
|
@@ -1,11 +1,140 @@
|
|
|
1
1
|
import { SEMRESATTRS_PROJECT_NAME } from "@arizeai/openinference-semantic-conventions";
|
|
2
2
|
import { OpenInferenceBatchSpanProcessor, OpenInferenceSimpleSpanProcessor, } from "@arizeai/openinference-vercel";
|
|
3
|
-
import { diag, DiagConsoleLogger } from "@opentelemetry/api";
|
|
3
|
+
import { context, diag, DiagConsoleLogger, propagation, trace, } from "@opentelemetry/api";
|
|
4
|
+
import { AsyncLocalStorageContextManager } from "@opentelemetry/context-async-hooks";
|
|
5
|
+
import { CompositePropagator, W3CBaggagePropagator, W3CTraceContextPropagator, } from "@opentelemetry/core";
|
|
4
6
|
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";
|
|
5
7
|
import { registerInstrumentations } from "@opentelemetry/instrumentation";
|
|
6
8
|
import { resourceFromAttributes } from "@opentelemetry/resources";
|
|
7
9
|
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
|
|
8
10
|
import { getEnvApiKey, getEnvCollectorURL } from "./config.js";
|
|
11
|
+
let nextGlobalTracerProviderMountId = 0;
|
|
12
|
+
let managedGlobalBaseSnapshot = null;
|
|
13
|
+
const managedGlobalTracerProviderMounts = [];
|
|
14
|
+
// OpenTelemetry v1 stores globals on this well-known symbol.
|
|
15
|
+
const OTEL_GLOBAL_SYMBOL = Symbol.for("opentelemetry.js.api.1");
|
|
16
|
+
function getOpenTelemetryGlobalState() {
|
|
17
|
+
return globalThis[OTEL_GLOBAL_SYMBOL];
|
|
18
|
+
}
|
|
19
|
+
function getGlobalTelemetrySnapshot() {
|
|
20
|
+
const globalState = getOpenTelemetryGlobalState();
|
|
21
|
+
return {
|
|
22
|
+
tracerProvider: globalState?.trace,
|
|
23
|
+
contextManager: globalState?.context,
|
|
24
|
+
propagator: globalState?.propagation,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function clearGlobalTelemetry() {
|
|
28
|
+
trace.disable();
|
|
29
|
+
context.disable();
|
|
30
|
+
propagation.disable();
|
|
31
|
+
}
|
|
32
|
+
function restoreGlobalTelemetrySnapshot(snapshot) {
|
|
33
|
+
clearGlobalTelemetry();
|
|
34
|
+
if (!snapshot) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (snapshot.tracerProvider) {
|
|
38
|
+
trace.setGlobalTracerProvider(snapshot.tracerProvider);
|
|
39
|
+
}
|
|
40
|
+
if (snapshot.contextManager) {
|
|
41
|
+
context.setGlobalContextManager(snapshot.contextManager);
|
|
42
|
+
}
|
|
43
|
+
if (snapshot.propagator) {
|
|
44
|
+
propagation.setGlobalPropagator(snapshot.propagator);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Sets the given provider as the global OpenTelemetry provider using this
|
|
49
|
+
* module's own imports of `trace`, `context`, and `propagation`.
|
|
50
|
+
*
|
|
51
|
+
* We deliberately avoid calling `provider.register()` because the SDK's
|
|
52
|
+
* internal import of `@opentelemetry/api` may resolve to a different module
|
|
53
|
+
* instance in pnpm workspaces (different symlink paths → different module
|
|
54
|
+
* identity). By routing all global-state mutations through **our** copy of
|
|
55
|
+
* the OTEL API, snapshot/restore stays consistent.
|
|
56
|
+
*/
|
|
57
|
+
function setGlobalProvider(provider) {
|
|
58
|
+
trace.setGlobalTracerProvider(provider);
|
|
59
|
+
const contextManager = new AsyncLocalStorageContextManager();
|
|
60
|
+
contextManager.enable();
|
|
61
|
+
context.setGlobalContextManager(contextManager);
|
|
62
|
+
propagation.setGlobalPropagator(new CompositePropagator({
|
|
63
|
+
propagators: [
|
|
64
|
+
new W3CTraceContextPropagator(),
|
|
65
|
+
new W3CBaggagePropagator(),
|
|
66
|
+
],
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
function restorePreviousManagedGlobalTracerProvider() {
|
|
70
|
+
const previousMount = managedGlobalTracerProviderMounts[managedGlobalTracerProviderMounts.length - 1];
|
|
71
|
+
if (previousMount) {
|
|
72
|
+
clearGlobalTelemetry();
|
|
73
|
+
setGlobalProvider(previousMount.provider);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
restoreGlobalTelemetrySnapshot(managedGlobalBaseSnapshot);
|
|
77
|
+
managedGlobalBaseSnapshot = null;
|
|
78
|
+
}
|
|
79
|
+
function detachManagedGlobalTracerProvider(mountId) {
|
|
80
|
+
if (managedGlobalTracerProviderMounts.length === 0) {
|
|
81
|
+
clearGlobalTelemetry();
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const mountIndex = mountId == null
|
|
85
|
+
? managedGlobalTracerProviderMounts.length - 1
|
|
86
|
+
: managedGlobalTracerProviderMounts.findIndex((mount) => mount.id === mountId);
|
|
87
|
+
if (mountIndex === -1) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
const isTopMount = mountIndex === managedGlobalTracerProviderMounts.length - 1;
|
|
91
|
+
managedGlobalTracerProviderMounts.splice(mountIndex, 1);
|
|
92
|
+
if (!isTopMount) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
restorePreviousManagedGlobalTracerProvider();
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Detaches the current global OpenTelemetry tracer provider and resets the
|
|
99
|
+
* global trace, context, and propagation APIs.
|
|
100
|
+
*/
|
|
101
|
+
export function detachGlobalTracerProvider() {
|
|
102
|
+
detachManagedGlobalTracerProvider();
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Attaches an existing tracer provider as the global OpenTelemetry provider.
|
|
106
|
+
*
|
|
107
|
+
* Returns a handle that can be used to detach it later so another provider can
|
|
108
|
+
* be attached in the same process.
|
|
109
|
+
*/
|
|
110
|
+
export function attachGlobalTracerProvider(provider) {
|
|
111
|
+
if (managedGlobalTracerProviderMounts.length === 0) {
|
|
112
|
+
managedGlobalBaseSnapshot = getGlobalTelemetrySnapshot();
|
|
113
|
+
}
|
|
114
|
+
const mountId = nextGlobalTracerProviderMountId++;
|
|
115
|
+
managedGlobalTracerProviderMounts.push({
|
|
116
|
+
id: mountId,
|
|
117
|
+
provider,
|
|
118
|
+
});
|
|
119
|
+
clearGlobalTelemetry();
|
|
120
|
+
setGlobalProvider(provider);
|
|
121
|
+
return {
|
|
122
|
+
detach: () => {
|
|
123
|
+
detachManagedGlobalTracerProvider(mountId);
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
function bindGlobalTracerProviderRegistrationToShutdown({ provider, registration, }) {
|
|
128
|
+
const shutdown = provider.shutdown.bind(provider);
|
|
129
|
+
let hasDetachedRegistration = false;
|
|
130
|
+
provider.shutdown = async () => {
|
|
131
|
+
if (!hasDetachedRegistration) {
|
|
132
|
+
hasDetachedRegistration = true;
|
|
133
|
+
registration.detach();
|
|
134
|
+
}
|
|
135
|
+
await shutdown();
|
|
136
|
+
};
|
|
137
|
+
}
|
|
9
138
|
/**
|
|
10
139
|
* Registers Phoenix OpenTelemetry tracing with the specified configuration.
|
|
11
140
|
*
|
|
@@ -106,7 +235,11 @@ export function register(params) {
|
|
|
106
235
|
});
|
|
107
236
|
}
|
|
108
237
|
if (global) {
|
|
109
|
-
provider
|
|
238
|
+
const registration = attachGlobalTracerProvider(provider);
|
|
239
|
+
bindGlobalTracerProviderRegistrationToShutdown({
|
|
240
|
+
provider,
|
|
241
|
+
registration,
|
|
242
|
+
});
|
|
110
243
|
}
|
|
111
244
|
return provider;
|
|
112
245
|
}
|
package/dist/esm/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"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"}
|