UNPKG

@multiplatform.one/typegraphql

Version:
35 lines (33 loc) 1.47 kB
// src/tracing.ts import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node"; import { AsyncLocalStorageContextManager } from "@opentelemetry/context-async-hooks"; import { CompositePropagator, W3CBaggagePropagator, W3CTraceContextPropagator } from "@opentelemetry/core"; import { JaegerExporter } from "@opentelemetry/exporter-jaeger"; import { B3InjectEncoding, B3Propagator } from "@opentelemetry/propagator-b3"; import { JaegerPropagator } from "@opentelemetry/propagator-jaeger"; import { NodeSDK } from "@opentelemetry/sdk-node"; import { SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base"; import prismaInstrumentation from "@prisma/instrumentation"; process.env.OTEL_EXPORTER_JAEGER_ENDPOINT = process.env.OTEL_EXPORTER_TRACE_ENDPOINT; var otelSDK = new NodeSDK({ spanProcessor: process.env.OTEL_EXPORTER_TRACE_ENABLED === "1" && process.env.OTEL_EXPORTER_TRACE_ENDPOINT ? new SimpleSpanProcessor(new JaegerExporter()) : void 0, contextManager: new AsyncLocalStorageContextManager(), textMapPropagator: new CompositePropagator({ propagators: [ new JaegerPropagator(), new W3CTraceContextPropagator(), new W3CBaggagePropagator(), new B3Propagator(), new B3Propagator({ injectEncoding: B3InjectEncoding.MULTI_HEADER }) ] }), instrumentations: [ getNodeAutoInstrumentations(), new prismaInstrumentation.PrismaInstrumentation() ] }); export { otelSDK };