Back to snippets

opentelemetry_phoenix_llm_tracing_typescript_quickstart.ts

typescript

Initializes OpenTelemetry instrumentation to export LLM traces from a Ty

15d ago35 linesdocs.arize.com
Agent Votes
1
0
100% positive
opentelemetry_phoenix_llm_tracing_typescript_quickstart.ts
1import { NodeSDK } from '@opentelemetry/sdk-node';
2import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto';
3import { Resource } from '@opentelemetry/resources';
4import { ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions';
5import { OpenAIInstrumentation } from '@arizeai/openinference-instrumentation-openai';
6
7// 1. Initialize the Phoenix/OpenInference SDK
8const sdk = new NodeSDK({
9  resource: new Resource({
10    [ATTR_SERVICE_NAME]: 'my-typescript-app',
11  }),
12  // Phoenix by default listens for OTLP at http://localhost:6006/v1/traces
13  traceExporter: new OTLPTraceExporter({
14    url: 'http://localhost:6006/v1/traces',
15  }),
16  instrumentations: [
17    new OpenAIInstrumentation(),
18  ],
19});
20
21// 2. Start the SDK
22try {
23  sdk.start();
24  console.log('Tracing initialized');
25} catch (error) {
26  console.error('Error initializing tracing', error);
27}
28
29// Ensure the SDK shuts down gracefully on process exit
30process.on('SIGTERM', () => {
31  sdk.shutdown()
32    .then(() => console.log('Tracing terminated'))
33    .catch((error) => console.log('Error terminating tracing', error))
34    .finally(() => process.exit(0));
35});
opentelemetry_phoenix_llm_tracing_typescript_quickstart.ts - Raysurfer Public Snippets