@arizeai/phoenix-otel 0.1.0 → 0.2.0
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/createNoOpProvider.d.ts +6 -0
- package/dist/esm/createNoOpProvider.d.ts.map +1 -0
- package/dist/esm/createNoOpProvider.js +9 -0
- package/dist/esm/createNoOpProvider.js.map +1 -0
- package/dist/esm/index.d.ts +5 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/register.d.ts +13 -1
- package/dist/esm/register.d.ts.map +1 -1
- package/dist/esm/register.js +9 -2
- package/dist/esm/register.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/utils.d.ts +3 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +4 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/src/createNoOpProvider.d.ts +6 -0
- package/dist/src/createNoOpProvider.d.ts.map +1 -0
- package/dist/src/createNoOpProvider.js +12 -0
- package/dist/src/createNoOpProvider.js.map +1 -0
- package/dist/src/index.d.ts +5 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +21 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/register.d.ts +13 -1
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +9 -2
- package/dist/src/register.js.map +1 -1
- package/dist/src/utils.d.ts +3 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +7 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/createNoOpProvider.ts +10 -0
- package/src/index.ts +13 -2
- package/src/register.ts +21 -1
- package/src/utils.ts +9 -0
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export {
|
|
2
|
+
trace,
|
|
3
|
+
context,
|
|
4
|
+
type DiagLogLevel,
|
|
5
|
+
type Tracer,
|
|
6
|
+
SpanStatusCode,
|
|
7
|
+
} from "@opentelemetry/api";
|
|
2
8
|
export { registerInstrumentations } from "@opentelemetry/instrumentation";
|
|
3
|
-
export { type RegisterParams, register } from "./register";
|
|
4
9
|
export { type Instrumentation } from "@opentelemetry/instrumentation";
|
|
10
|
+
export { type NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
|
|
11
|
+
|
|
12
|
+
// Phoenix abstractions
|
|
13
|
+
export * from "./createNoOpProvider";
|
|
14
|
+
export * from "./register";
|
|
15
|
+
export * from "./utils";
|
package/src/register.ts
CHANGED
|
@@ -14,6 +14,9 @@ import {
|
|
|
14
14
|
Instrumentation,
|
|
15
15
|
registerInstrumentations,
|
|
16
16
|
} from "@opentelemetry/instrumentation";
|
|
17
|
+
import { diag, DiagConsoleLogger, DiagLogLevel } from "@opentelemetry/api";
|
|
18
|
+
|
|
19
|
+
export type Headers = Record<string, string>;
|
|
17
20
|
|
|
18
21
|
/**
|
|
19
22
|
* Configuration parameters for registering Phoenix OpenTelemetry tracing
|
|
@@ -35,6 +38,10 @@ export type RegisterParams = {
|
|
|
35
38
|
* If not provided, environment variables are checked.
|
|
36
39
|
*/
|
|
37
40
|
apiKey?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Headers to be used when communicating with the OTLP collector
|
|
43
|
+
*/
|
|
44
|
+
headers?: Headers;
|
|
38
45
|
/**
|
|
39
46
|
* Whether to use batching for span processing.
|
|
40
47
|
* It is recommended to use batching in production environments
|
|
@@ -51,6 +58,11 @@ export type RegisterParams = {
|
|
|
51
58
|
* @default true
|
|
52
59
|
*/
|
|
53
60
|
global?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* The diag log level to set for the built in DiagConsoleLogger instance.
|
|
63
|
+
* Omit to disable built in logging.
|
|
64
|
+
*/
|
|
65
|
+
diagLogLevel?: DiagLogLevel;
|
|
54
66
|
};
|
|
55
67
|
|
|
56
68
|
/**
|
|
@@ -63,6 +75,7 @@ export type RegisterParams = {
|
|
|
63
75
|
* @param params.instrumentations - A list of instrumentation to register
|
|
64
76
|
* @param params.batch - Whether to use batching for span processing
|
|
65
77
|
* @param params.global - Whether to set the tracer as a global provider
|
|
78
|
+
* @param params.diagLogLevel - the diagnostics log level
|
|
66
79
|
* @returns {NodeTracerProvider} The configured NodeTracerProvider instance
|
|
67
80
|
*
|
|
68
81
|
* @example
|
|
@@ -80,16 +93,23 @@ export type RegisterParams = {
|
|
|
80
93
|
export function register({
|
|
81
94
|
url: paramsUrl,
|
|
82
95
|
apiKey: paramsApiKey,
|
|
96
|
+
headers: paramsHeaders = {},
|
|
83
97
|
projectName = "default",
|
|
84
98
|
instrumentations,
|
|
85
99
|
batch = true,
|
|
86
100
|
global = true,
|
|
101
|
+
diagLogLevel,
|
|
87
102
|
}: RegisterParams): NodeTracerProvider {
|
|
103
|
+
if (diagLogLevel) {
|
|
104
|
+
diag.setLogger(new DiagConsoleLogger(), diagLogLevel);
|
|
105
|
+
}
|
|
88
106
|
const url = ensureCollectorEndpoint(
|
|
89
107
|
paramsUrl || getEnvCollectorURL() || "http://localhost:6006"
|
|
90
108
|
);
|
|
91
109
|
const apiKey = paramsApiKey || getEnvApiKey();
|
|
92
|
-
const headers:
|
|
110
|
+
const headers: Headers = Array.isArray(paramsHeaders)
|
|
111
|
+
? Object.fromEntries(paramsHeaders)
|
|
112
|
+
: paramsHeaders;
|
|
93
113
|
const configureHeaders = typeof apiKey == "string";
|
|
94
114
|
if (configureHeaders) {
|
|
95
115
|
headers["authorization"] = `Bearer ${apiKey}`;
|
package/src/utils.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AttributeValue } from "@opentelemetry/api";
|
|
2
|
+
|
|
3
|
+
export function objectAsAttributes<T extends Record<string, unknown>>(
|
|
4
|
+
obj: T
|
|
5
|
+
): Record<string, AttributeValue> {
|
|
6
|
+
return Object.fromEntries(
|
|
7
|
+
Object.entries(obj).filter(([_, value]) => value !== null)
|
|
8
|
+
) as Record<string, AttributeValue>;
|
|
9
|
+
}
|