UNPKG

@arizeai/phoenix-client

Version:

A client for the Phoenix API

38 lines 1.59 kB
import { diag, DiagConsoleLogger, DiagLogLevel } from "@opentelemetry/api"; import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto"; import { resourceFromAttributes } from "@opentelemetry/resources"; import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node"; import { SEMRESATTRS_PROJECT_NAME } from "@arizeai/openinference-semantic-conventions"; import { OpenInferenceSimpleSpanProcessor } from "@arizeai/openinference-vercel"; /** * Creates a provider that exports traces to Phoenix. */ export function createProvider({ projectName, baseUrl, headers, }) { diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.ERROR); const provider = new NodeTracerProvider({ resource: resourceFromAttributes({ [SEMRESATTRS_PROJECT_NAME]: projectName, }), spanProcessors: [ // We opt to use the OpenInferenceSimpleSpanProcessor instead of the SimpleSpanProcessor // Since so many AI applications use the AI SDK new OpenInferenceSimpleSpanProcessor({ exporter: new OTLPTraceExporter({ url: `${baseUrl}/v1/traces`, headers: Array.isArray(headers) ? Object.fromEntries(headers) : headers, }), }), ], }); return provider; } /** * For dry runs we create a provider that doesn't export traces. */ export function createNoOpProvider() { const provider = new NodeTracerProvider({}); return provider; } //# sourceMappingURL=instrumention.js.map