🔒[private user] thank you
I am using Typescript in my lambda
here is the code:
tracing.ts
import { Metadata } from '@grpc/grpc-js'
import { trace } from '@opentelemetry/api'
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc'
import { Resource } from '@opentelemetry/resources'
import { SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base'
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node'
console.log('🔥 tracing.js loaded')
const globalAny = globalThis as any
if (!globalAny.tracingProviderSingleton) {
const metadata = new Metadata()
metadata.set('x-arize-space-id', process.env.ARIZE_SPACE_ID!)
metadata.set('x-arize-api-key', process.env.ARIZE_API_KEY!)
const provider = new NodeTracerProvider({
resource: new Resource({
'service.name': 'conversationMessageHandler',
'openinference.project.name': 'test-project',
}),
})
provider.addSpanProcessor(
new SimpleSpanProcessor(
new OTLPTraceExporter({
url: 'https://otlp.arize.com:443',
metadata, // ✅ THIS IS THE KEY
})
)
)
provider.register()
// sanity span
const tracer = trace.getTracer('startup')
const span = tracer.startSpan('startup-span')
span.end()
globalAny.tracingProviderSingleton = provider
}
export async function flushTracing() {
await globalAny.tracingProviderSingleton.forceFlush()
}
lambda index.ts
import './tracing' // 👈 this is the key
import { trace } from '@opentelemetry/api'
// eslint-disable-next-line import/no-duplicates
import { flushTracing } from './tracing'
export const handler = async () => {
const tracer = trace.getTracer('debug')
const span = tracer.startSpan('manual-test-span')
span.end()
await flushTracing()
return { statusCode: 200 }
}
My dependencies:
"dependencies": {
"openai": "^5.10.2",
"@arizeai/openinference-instrumentation-openai": "^4.0.5",
"@opentelemetry/api": "1.9.0",
"@opentelemetry/resources": "1.9.0",
"@opentelemetry/sdk-trace-base": "1.9.0",
"@opentelemetry/sdk-trace-node": "1.9.0",
"@opentelemetry/instrumentation": "0.43.0",
"@opentelemetry/exporter-trace-otlp-grpc": "0.43.0"
}
As you can see it is a simple example, and even this is not working
At this point, I am trying to send a span from my lambda to Arize