import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
import { NodeSDK } from "@opentelemetry/sdk-node";
import { logger } from "./logger";
const traceExporter = new OTLPTraceExporter({
url:
process.env.OTEL_EXPORTER_OTLP_ENDPOINT ||
"http://localhost:4318/v1/traces",
});
const sdk = new NodeSDK({
traceExporter,
instrumentations: [getNodeAutoInstrumentations()],
serviceName: "opencodehub",
});
export function initTracing() {
if (process.env.ENABLE_TRACING === "true") {
try {
sdk.start();
logger.info("OpenTelemetry tracing initialized");
} catch (e) {
logger.error({ err: e }, "Failed to initialize OpenTelemetry");
}
}
}