Setup
CallExuluOtel.create() in your backend entrypoint before the application starts:
@opentelemetry/auto-instrumentations-node which automatically instruments HTTP, Express, database queries, and other common Node.js modules. The service name reported to SigNoz is Exulu.
Configuration reference
All three variables must be set for telemetry to initialise.
What gets traced
Auto-instrumentation covers:- Incoming HTTP requests to the backend (Express routes)
- Outgoing HTTP calls (to LiteLLM, provider APIs, Whisper)
- Postgres queries (via
pg) - BullMQ job lifecycle events (via
bullmq-otel)
Operational notes
SDK shutdown. The OTel SDK registers aSIGTERM handler and flushes pending spans before the process exits. Expect a short delay on container shutdown while spans drain.
No SigNoz account. If you prefer a different OTLP-compatible backend (Jaeger, Grafana Tempo, Honeycomb, etc.), point SIGNOZ_TRACES_URL and SIGNOZ_LOGS_URL at those endpoints and set SIGNOZ_ACCESS_TOKEN to whatever authentication token the backend requires. The header sent is signoz-access-token; some backends may require a different header name. In that case you need to customise the ExuluOtel.create() call.