Skip to main content
ExuluOtel bootstraps an OpenTelemetry NodeSDK instance pointed at a SigNoz ingest endpoint. It instruments all Node.js auto-instrumentable libraries (HTTP, database drivers, etc.) and sends both traces and logs via OTLP/HTTP with your access token attached. Call ExuluOtel.create once at the very start of your process (before any other imports that should be instrumented) and start the returned SDK. The SDK shuts down gracefully on SIGTERM.

API surface

ExuluOtel.create

Creates and returns a configured NodeSDK instance. Does not start the SDK — call .start() on the returned object.
SIGNOZ_ACCESS_TOKEN
string
required
SigNoz ingest token. Sent as the signoz-access-token header on all OTLP requests.
SIGNOZ_TRACES_URL
string
required
OTLP/HTTP endpoint for traces (e.g. https://ingest.eu.signoz.cloud:443/v1/traces).
SIGNOZ_LOGS_URL
string
required
OTLP/HTTP endpoint for logs (e.g. https://ingest.eu.signoz.cloud:443/v1/logs).
return
NodeSDK
An @opentelemetry/sdk-node NodeSDK instance ready for .start(). The instance registers a SIGTERM handler that calls .shutdown() and exits the process.

Example

Notes

  • ExuluOtel always sets the service name to "Exulu". This is the value that appears as the service name in SigNoz.
  • Traces and logs use separate exporters but share the same access token.
  • The SDK uses BatchLogRecordProcessor — logs are buffered and flushed in batches, not on every log statement.
  • Do not call ExuluOtel.create more than once per process; multiple SDK instances will duplicate spans.