@arizeai/phoenix-client 5.0.0 → 5.1.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/experiments/runExperiment.d.ts +1 -2
- package/dist/esm/experiments/runExperiment.d.ts.map +1 -1
- package/dist/esm/experiments/runExperiment.js +16 -18
- package/dist/esm/experiments/runExperiment.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/utils/toObjectHeaders.d.ts +6 -0
- package/dist/esm/utils/toObjectHeaders.d.ts.map +1 -0
- package/dist/esm/utils/toObjectHeaders.js +18 -0
- package/dist/esm/utils/toObjectHeaders.js.map +1 -0
- package/dist/src/experiments/runExperiment.d.ts +1 -2
- package/dist/src/experiments/runExperiment.d.ts.map +1 -1
- package/dist/src/experiments/runExperiment.js +28 -30
- package/dist/src/experiments/runExperiment.js.map +1 -1
- package/dist/src/utils/toObjectHeaders.d.ts +6 -0
- package/dist/src/utils/toObjectHeaders.d.ts.map +1 -0
- package/dist/src/utils/toObjectHeaders.js +21 -0
- package/dist/src/utils/toObjectHeaders.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -9
- package/src/experiments/runExperiment.ts +22 -19
- package/src/utils/toObjectHeaders.ts +22 -0
- package/dist/esm/experiments/instrumentation.d.ts +0 -29
- package/dist/esm/experiments/instrumentation.d.ts.map +0 -1
- package/dist/esm/experiments/instrumentation.js +0 -40
- package/dist/esm/experiments/instrumentation.js.map +0 -1
- package/dist/esm/utils/objectAsAttributes.d.ts +0 -3
- package/dist/esm/utils/objectAsAttributes.d.ts.map +0 -1
- package/dist/esm/utils/objectAsAttributes.js +0 -4
- package/dist/esm/utils/objectAsAttributes.js.map +0 -1
- package/dist/src/experiments/instrumentation.d.ts +0 -29
- package/dist/src/experiments/instrumentation.d.ts.map +0 -1
- package/dist/src/experiments/instrumentation.js +0 -44
- package/dist/src/experiments/instrumentation.js.map +0 -1
- package/dist/src/utils/objectAsAttributes.d.ts +0 -3
- package/dist/src/utils/objectAsAttributes.d.ts.map +0 -1
- package/dist/src/utils/objectAsAttributes.js +0 -7
- package/dist/src/utils/objectAsAttributes.js.map +0 -1
- package/src/experiments/instrumentation.ts +0 -75
- package/src/utils/objectAsAttributes.ts +0 -9
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arizeai/phoenix-client",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.1.0",
|
|
4
4
|
"description": "A client for the Phoenix API",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -72,18 +72,12 @@
|
|
|
72
72
|
"dependencies": {
|
|
73
73
|
"@arizeai/openinference-semantic-conventions": "^1.1.0",
|
|
74
74
|
"@arizeai/openinference-vercel": "^2.3.1",
|
|
75
|
-
"@opentelemetry/api": "^1.9.0",
|
|
76
|
-
"@opentelemetry/core": "^1.25.1",
|
|
77
|
-
"@opentelemetry/exporter-trace-otlp-proto": "^0.57.2",
|
|
78
|
-
"@opentelemetry/instrumentation": "^0.57.2",
|
|
79
|
-
"@opentelemetry/resources": "^2.0.0",
|
|
80
|
-
"@opentelemetry/sdk-trace-base": "^1.30.1",
|
|
81
|
-
"@opentelemetry/sdk-trace-node": "^1.30.1",
|
|
82
75
|
"async": "^3.2.6",
|
|
83
76
|
"openapi-fetch": "^0.12.5",
|
|
84
77
|
"tiny-invariant": "^1.3.3",
|
|
85
78
|
"zod": "^3.24.2",
|
|
86
|
-
"zod-to-json-schema": "^3.24.3"
|
|
79
|
+
"zod-to-json-schema": "^3.24.3",
|
|
80
|
+
"@arizeai/phoenix-otel": "0.2.0"
|
|
87
81
|
},
|
|
88
82
|
"engines": {
|
|
89
83
|
"node": ">=18"
|
|
@@ -22,27 +22,29 @@ import { getDataset } from "../datasets/getDataset";
|
|
|
22
22
|
import { pluralize } from "../utils/pluralize";
|
|
23
23
|
import { promisifyResult } from "../utils/promisifyResult";
|
|
24
24
|
import { AnnotatorKind } from "../types/annotations";
|
|
25
|
-
import { createProvider, createNoOpProvider } from "./instrumentation";
|
|
26
25
|
import {
|
|
27
26
|
type DiagLogLevel,
|
|
28
27
|
SpanStatusCode,
|
|
29
28
|
Tracer,
|
|
30
29
|
trace,
|
|
31
|
-
|
|
30
|
+
NodeTracerProvider,
|
|
31
|
+
objectAsAttributes,
|
|
32
|
+
createNoOpProvider,
|
|
33
|
+
register,
|
|
34
|
+
} from "@arizeai/phoenix-otel";
|
|
32
35
|
import {
|
|
33
36
|
MimeType,
|
|
34
37
|
OpenInferenceSpanKind,
|
|
35
38
|
SemanticConventions,
|
|
36
39
|
} from "@arizeai/openinference-semantic-conventions";
|
|
37
40
|
import { ensureString } from "../utils/ensureString";
|
|
38
|
-
import type { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
|
|
39
|
-
import { objectAsAttributes } from "../utils/objectAsAttributes";
|
|
40
41
|
import {
|
|
41
42
|
getDatasetUrl,
|
|
42
43
|
getDatasetExperimentsUrl,
|
|
43
44
|
getExperimentUrl,
|
|
44
45
|
} from "../utils/urlUtils";
|
|
45
46
|
import assert from "assert";
|
|
47
|
+
import { toObjectHeaders } from "../utils/toObjectHeaders";
|
|
46
48
|
|
|
47
49
|
/**
|
|
48
50
|
* Validate that a repetition is valid
|
|
@@ -245,17 +247,18 @@ export async function runExperiment({
|
|
|
245
247
|
baseUrl,
|
|
246
248
|
"Phoenix base URL not found. Please set PHOENIX_HOST or set baseUrl on the client."
|
|
247
249
|
);
|
|
248
|
-
|
|
250
|
+
|
|
251
|
+
provider = register({
|
|
249
252
|
projectName,
|
|
250
|
-
baseUrl,
|
|
251
|
-
headers: client.config.headers
|
|
252
|
-
|
|
253
|
+
url: baseUrl,
|
|
254
|
+
headers: client.config.headers
|
|
255
|
+
? toObjectHeaders(client.config.headers)
|
|
256
|
+
: undefined,
|
|
257
|
+
batch: useBatchSpanProcessor,
|
|
253
258
|
diagLogLevel,
|
|
259
|
+
global: setGlobalTracerProvider,
|
|
254
260
|
});
|
|
255
|
-
|
|
256
|
-
if (setGlobalTracerProvider) {
|
|
257
|
-
provider.register();
|
|
258
|
-
}
|
|
261
|
+
|
|
259
262
|
taskTracer = provider.getTracer(projectName);
|
|
260
263
|
}
|
|
261
264
|
if (!record) {
|
|
@@ -548,16 +551,16 @@ export async function evaluateExperiment({
|
|
|
548
551
|
if (paramsTracerProvider) {
|
|
549
552
|
provider = paramsTracerProvider;
|
|
550
553
|
} else if (!isDryRun) {
|
|
551
|
-
provider =
|
|
554
|
+
provider = register({
|
|
552
555
|
projectName: "evaluators",
|
|
553
|
-
baseUrl,
|
|
554
|
-
headers: client.config.headers
|
|
555
|
-
|
|
556
|
+
url: baseUrl,
|
|
557
|
+
headers: client.config.headers
|
|
558
|
+
? toObjectHeaders(client.config.headers)
|
|
559
|
+
: undefined,
|
|
560
|
+
batch: useBatchSpanProcessor,
|
|
556
561
|
diagLogLevel,
|
|
562
|
+
global: setGlobalTracerProvider,
|
|
557
563
|
});
|
|
558
|
-
if (setGlobalTracerProvider) {
|
|
559
|
-
provider.register();
|
|
560
|
-
}
|
|
561
564
|
} else {
|
|
562
565
|
provider = createNoOpProvider();
|
|
563
566
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { HeadersOptions } from "openapi-fetch";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A utility function that simplifies the headers for passing to other clients
|
|
5
|
+
*/
|
|
6
|
+
export function toObjectHeaders(
|
|
7
|
+
headers: HeadersOptions
|
|
8
|
+
): Record<string, string> {
|
|
9
|
+
if (Array.isArray(headers)) {
|
|
10
|
+
return Object.fromEntries(headers);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const objectHeaders: Record<string, string> = {};
|
|
14
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
15
|
+
if (value !== null && value !== undefined) {
|
|
16
|
+
objectHeaders[key] = Array.isArray(value)
|
|
17
|
+
? value.join(", ")
|
|
18
|
+
: String(value);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return objectHeaders;
|
|
22
|
+
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { DiagLogLevel } from "@opentelemetry/api";
|
|
2
|
-
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
|
|
3
|
-
import { HeadersOptions } from "openapi-fetch";
|
|
4
|
-
/**
|
|
5
|
-
* Creates a provider that exports traces to Phoenix.
|
|
6
|
-
*/
|
|
7
|
-
export declare function createProvider({ projectName, baseUrl, headers, useBatchSpanProcessor, diagLogLevel, }: {
|
|
8
|
-
projectName: string;
|
|
9
|
-
headers: HeadersOptions;
|
|
10
|
-
/**
|
|
11
|
-
* Whether to use batching for the span processor.
|
|
12
|
-
* @default true
|
|
13
|
-
*/
|
|
14
|
-
useBatchSpanProcessor: boolean;
|
|
15
|
-
/**
|
|
16
|
-
* The base URL of the Phoenix. Doesn't include the /v1/traces path.
|
|
17
|
-
*/
|
|
18
|
-
baseUrl: string;
|
|
19
|
-
/**
|
|
20
|
-
* The diag log level to set for the built in DiagConsoleLogger instance.
|
|
21
|
-
* Omit to disable built in logging.
|
|
22
|
-
*/
|
|
23
|
-
diagLogLevel?: DiagLogLevel;
|
|
24
|
-
}): NodeTracerProvider;
|
|
25
|
-
/**
|
|
26
|
-
* For dry runs we create a provider that doesn't export traces.
|
|
27
|
-
*/
|
|
28
|
-
export declare function createNoOpProvider(): NodeTracerProvider;
|
|
29
|
-
//# sourceMappingURL=instrumentation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../src/experiments/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG3E,OAAO,EACL,kBAAkB,EAEnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAM/C;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC7B,WAAW,EACX,OAAO,EACP,OAAO,EACP,qBAA4B,EAC5B,YAAY,GACb,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB;;;OAGG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,sBAyBA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,uBAIjC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { diag, DiagConsoleLogger } from "@opentelemetry/api";
|
|
2
|
-
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";
|
|
3
|
-
import { resourceFromAttributes } from "@opentelemetry/resources";
|
|
4
|
-
import { NodeTracerProvider, } from "@opentelemetry/sdk-trace-node";
|
|
5
|
-
import { SEMRESATTRS_PROJECT_NAME } from "@arizeai/openinference-semantic-conventions";
|
|
6
|
-
import { OpenInferenceBatchSpanProcessor, OpenInferenceSimpleSpanProcessor, } from "@arizeai/openinference-vercel";
|
|
7
|
-
/**
|
|
8
|
-
* Creates a provider that exports traces to Phoenix.
|
|
9
|
-
*/
|
|
10
|
-
export function createProvider({ projectName, baseUrl, headers, useBatchSpanProcessor = true, diagLogLevel, }) {
|
|
11
|
-
if (diagLogLevel) {
|
|
12
|
-
diag.setLogger(new DiagConsoleLogger(), diagLogLevel);
|
|
13
|
-
}
|
|
14
|
-
const exporter = new OTLPTraceExporter({
|
|
15
|
-
url: `${baseUrl}/v1/traces`,
|
|
16
|
-
headers: Array.isArray(headers) ? Object.fromEntries(headers) : headers,
|
|
17
|
-
});
|
|
18
|
-
let spanProcessor;
|
|
19
|
-
if (useBatchSpanProcessor) {
|
|
20
|
-
spanProcessor = new OpenInferenceBatchSpanProcessor({ exporter });
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
spanProcessor = new OpenInferenceSimpleSpanProcessor({ exporter });
|
|
24
|
-
}
|
|
25
|
-
const provider = new NodeTracerProvider({
|
|
26
|
-
resource: resourceFromAttributes({
|
|
27
|
-
[SEMRESATTRS_PROJECT_NAME]: projectName,
|
|
28
|
-
}),
|
|
29
|
-
spanProcessors: [spanProcessor],
|
|
30
|
-
});
|
|
31
|
-
return provider;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* For dry runs we create a provider that doesn't export traces.
|
|
35
|
-
*/
|
|
36
|
-
export function createNoOpProvider() {
|
|
37
|
-
const provider = new NodeTracerProvider({});
|
|
38
|
-
return provider;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=instrumentation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../src/experiments/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAgB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACL,kBAAkB,GAEnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,+BAA+B,CAAC;AAEvC;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,WAAW,EACX,OAAO,EACP,OAAO,EACP,qBAAqB,GAAG,IAAI,EAC5B,YAAY,GAkBb;IACC,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,CAAC,IAAI,iBAAiB,EAAE,EAAE,YAAY,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC;QACrC,GAAG,EAAE,GAAG,OAAO,YAAY;QAC3B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;KACxE,CAAC,CAAC;IAEH,IAAI,aAA4B,CAAC;IACjC,IAAI,qBAAqB,EAAE,CAAC;QAC1B,aAAa,GAAG,IAAI,+BAA+B,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,aAAa,GAAG,IAAI,gCAAgC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC;QACtC,QAAQ,EAAE,sBAAsB,CAAC;YAC/B,CAAC,wBAAwB,CAAC,EAAE,WAAW;SACxC,CAAC;QACF,cAAc,EAAE,CAAC,aAAa,CAAC;KAChC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAE5C,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"objectAsAttributes.d.ts","sourceRoot":"","sources":["../../../src/utils/objectAsAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,GAAG,EAAE,CAAC,GACL,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAIhC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"objectAsAttributes.js","sourceRoot":"","sources":["../../../src/utils/objectAsAttributes.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAChC,GAAM;IAEN,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CACzB,CAAC;AACtC,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { DiagLogLevel } from "@opentelemetry/api";
|
|
2
|
-
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
|
|
3
|
-
import { HeadersOptions } from "openapi-fetch";
|
|
4
|
-
/**
|
|
5
|
-
* Creates a provider that exports traces to Phoenix.
|
|
6
|
-
*/
|
|
7
|
-
export declare function createProvider({ projectName, baseUrl, headers, useBatchSpanProcessor, diagLogLevel, }: {
|
|
8
|
-
projectName: string;
|
|
9
|
-
headers: HeadersOptions;
|
|
10
|
-
/**
|
|
11
|
-
* Whether to use batching for the span processor.
|
|
12
|
-
* @default true
|
|
13
|
-
*/
|
|
14
|
-
useBatchSpanProcessor: boolean;
|
|
15
|
-
/**
|
|
16
|
-
* The base URL of the Phoenix. Doesn't include the /v1/traces path.
|
|
17
|
-
*/
|
|
18
|
-
baseUrl: string;
|
|
19
|
-
/**
|
|
20
|
-
* The diag log level to set for the built in DiagConsoleLogger instance.
|
|
21
|
-
* Omit to disable built in logging.
|
|
22
|
-
*/
|
|
23
|
-
diagLogLevel?: DiagLogLevel;
|
|
24
|
-
}): NodeTracerProvider;
|
|
25
|
-
/**
|
|
26
|
-
* For dry runs we create a provider that doesn't export traces.
|
|
27
|
-
*/
|
|
28
|
-
export declare function createNoOpProvider(): NodeTracerProvider;
|
|
29
|
-
//# sourceMappingURL=instrumentation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../src/experiments/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG3E,OAAO,EACL,kBAAkB,EAEnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAM/C;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC7B,WAAW,EACX,OAAO,EACP,OAAO,EACP,qBAA4B,EAC5B,YAAY,GACb,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB;;;OAGG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,sBAyBA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,uBAIjC"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createProvider = createProvider;
|
|
4
|
-
exports.createNoOpProvider = createNoOpProvider;
|
|
5
|
-
const api_1 = require("@opentelemetry/api");
|
|
6
|
-
const exporter_trace_otlp_proto_1 = require("@opentelemetry/exporter-trace-otlp-proto");
|
|
7
|
-
const resources_1 = require("@opentelemetry/resources");
|
|
8
|
-
const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
|
|
9
|
-
const openinference_semantic_conventions_1 = require("@arizeai/openinference-semantic-conventions");
|
|
10
|
-
const openinference_vercel_1 = require("@arizeai/openinference-vercel");
|
|
11
|
-
/**
|
|
12
|
-
* Creates a provider that exports traces to Phoenix.
|
|
13
|
-
*/
|
|
14
|
-
function createProvider({ projectName, baseUrl, headers, useBatchSpanProcessor = true, diagLogLevel, }) {
|
|
15
|
-
if (diagLogLevel) {
|
|
16
|
-
api_1.diag.setLogger(new api_1.DiagConsoleLogger(), diagLogLevel);
|
|
17
|
-
}
|
|
18
|
-
const exporter = new exporter_trace_otlp_proto_1.OTLPTraceExporter({
|
|
19
|
-
url: `${baseUrl}/v1/traces`,
|
|
20
|
-
headers: Array.isArray(headers) ? Object.fromEntries(headers) : headers,
|
|
21
|
-
});
|
|
22
|
-
let spanProcessor;
|
|
23
|
-
if (useBatchSpanProcessor) {
|
|
24
|
-
spanProcessor = new openinference_vercel_1.OpenInferenceBatchSpanProcessor({ exporter });
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
spanProcessor = new openinference_vercel_1.OpenInferenceSimpleSpanProcessor({ exporter });
|
|
28
|
-
}
|
|
29
|
-
const provider = new sdk_trace_node_1.NodeTracerProvider({
|
|
30
|
-
resource: (0, resources_1.resourceFromAttributes)({
|
|
31
|
-
[openinference_semantic_conventions_1.SEMRESATTRS_PROJECT_NAME]: projectName,
|
|
32
|
-
}),
|
|
33
|
-
spanProcessors: [spanProcessor],
|
|
34
|
-
});
|
|
35
|
-
return provider;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* For dry runs we create a provider that doesn't export traces.
|
|
39
|
-
*/
|
|
40
|
-
function createNoOpProvider() {
|
|
41
|
-
const provider = new sdk_trace_node_1.NodeTracerProvider({});
|
|
42
|
-
return provider;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=instrumentation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../src/experiments/instrumentation.ts"],"names":[],"mappings":";;AAiBA,wCAgDC;AAKD,gDAIC;AA1ED,4CAA2E;AAC3E,wFAA6E;AAC7E,wDAAkE;AAClE,kEAGuC;AACvC,oGAAuF;AAEvF,wEAGuC;AAEvC;;GAEG;AACH,SAAgB,cAAc,CAAC,EAC7B,WAAW,EACX,OAAO,EACP,OAAO,EACP,qBAAqB,GAAG,IAAI,EAC5B,YAAY,GAkBb;IACC,IAAI,YAAY,EAAE,CAAC;QACjB,UAAI,CAAC,SAAS,CAAC,IAAI,uBAAiB,EAAE,EAAE,YAAY,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,6CAAiB,CAAC;QACrC,GAAG,EAAE,GAAG,OAAO,YAAY;QAC3B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;KACxE,CAAC,CAAC;IAEH,IAAI,aAA4B,CAAC;IACjC,IAAI,qBAAqB,EAAE,CAAC;QAC1B,aAAa,GAAG,IAAI,sDAA+B,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,aAAa,GAAG,IAAI,uDAAgC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,mCAAkB,CAAC;QACtC,QAAQ,EAAE,IAAA,kCAAsB,EAAC;YAC/B,CAAC,6DAAwB,CAAC,EAAE,WAAW;SACxC,CAAC;QACF,cAAc,EAAE,CAAC,aAAa,CAAC;KAChC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB;IAChC,MAAM,QAAQ,GAAG,IAAI,mCAAkB,CAAC,EAAE,CAAC,CAAC;IAE5C,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"objectAsAttributes.d.ts","sourceRoot":"","sources":["../../../src/utils/objectAsAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,GAAG,EAAE,CAAC,GACL,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAIhC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.objectAsAttributes = objectAsAttributes;
|
|
4
|
-
function objectAsAttributes(obj) {
|
|
5
|
-
return Object.fromEntries(Object.entries(obj).filter(([_, value]) => value !== null));
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=objectAsAttributes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"objectAsAttributes.js","sourceRoot":"","sources":["../../../src/utils/objectAsAttributes.ts"],"names":[],"mappings":";;AAEA,gDAMC;AAND,SAAgB,kBAAkB,CAChC,GAAM;IAEN,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CACzB,CAAC;AACtC,CAAC"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { diag, DiagConsoleLogger, DiagLogLevel } from "@opentelemetry/api";
|
|
2
|
-
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";
|
|
3
|
-
import { resourceFromAttributes } from "@opentelemetry/resources";
|
|
4
|
-
import {
|
|
5
|
-
NodeTracerProvider,
|
|
6
|
-
SpanProcessor,
|
|
7
|
-
} from "@opentelemetry/sdk-trace-node";
|
|
8
|
-
import { SEMRESATTRS_PROJECT_NAME } from "@arizeai/openinference-semantic-conventions";
|
|
9
|
-
import { HeadersOptions } from "openapi-fetch";
|
|
10
|
-
import {
|
|
11
|
-
OpenInferenceBatchSpanProcessor,
|
|
12
|
-
OpenInferenceSimpleSpanProcessor,
|
|
13
|
-
} from "@arizeai/openinference-vercel";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Creates a provider that exports traces to Phoenix.
|
|
17
|
-
*/
|
|
18
|
-
export function createProvider({
|
|
19
|
-
projectName,
|
|
20
|
-
baseUrl,
|
|
21
|
-
headers,
|
|
22
|
-
useBatchSpanProcessor = true,
|
|
23
|
-
diagLogLevel,
|
|
24
|
-
}: {
|
|
25
|
-
projectName: string;
|
|
26
|
-
headers: HeadersOptions;
|
|
27
|
-
/**
|
|
28
|
-
* Whether to use batching for the span processor.
|
|
29
|
-
* @default true
|
|
30
|
-
*/
|
|
31
|
-
useBatchSpanProcessor: boolean;
|
|
32
|
-
/**
|
|
33
|
-
* The base URL of the Phoenix. Doesn't include the /v1/traces path.
|
|
34
|
-
*/
|
|
35
|
-
baseUrl: string;
|
|
36
|
-
/**
|
|
37
|
-
* The diag log level to set for the built in DiagConsoleLogger instance.
|
|
38
|
-
* Omit to disable built in logging.
|
|
39
|
-
*/
|
|
40
|
-
diagLogLevel?: DiagLogLevel;
|
|
41
|
-
}) {
|
|
42
|
-
if (diagLogLevel) {
|
|
43
|
-
diag.setLogger(new DiagConsoleLogger(), diagLogLevel);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const exporter = new OTLPTraceExporter({
|
|
47
|
-
url: `${baseUrl}/v1/traces`,
|
|
48
|
-
headers: Array.isArray(headers) ? Object.fromEntries(headers) : headers,
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
let spanProcessor: SpanProcessor;
|
|
52
|
-
if (useBatchSpanProcessor) {
|
|
53
|
-
spanProcessor = new OpenInferenceBatchSpanProcessor({ exporter });
|
|
54
|
-
} else {
|
|
55
|
-
spanProcessor = new OpenInferenceSimpleSpanProcessor({ exporter });
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const provider = new NodeTracerProvider({
|
|
59
|
-
resource: resourceFromAttributes({
|
|
60
|
-
[SEMRESATTRS_PROJECT_NAME]: projectName,
|
|
61
|
-
}),
|
|
62
|
-
spanProcessors: [spanProcessor],
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
return provider;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* For dry runs we create a provider that doesn't export traces.
|
|
70
|
-
*/
|
|
71
|
-
export function createNoOpProvider() {
|
|
72
|
-
const provider = new NodeTracerProvider({});
|
|
73
|
-
|
|
74
|
-
return provider;
|
|
75
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
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
|
-
}
|