Skip to main content
This guide covers Node.js applications running on ECS, EC2, Kubernetes, or any container/VM environment. For AWS Lambda, see the Node.js Lambda guide.

1. Install the OpenTelemetry SDK

2. Enable Auto Instrumentation

Enable auto instrumentation by requiring the auto-instrumentations-node module using the --require flag:

3. Set Environment Variables

Add these environment variables to your service. Replace YOUR_TRACE0_ENV_API_KEY with the API key from your Trace0 environment.

4. Add Trace0 logger

To correlate logs with traces in Trace0, the @trace0/otel-logger library must be installed in your app. This is necessary because the OpenTelemetry JavaScript library does not yet automatically bridge console output into the OTel Logs pipeline. First, install the library:
Then add as the first import in your app entry point:
Logs will be flushed to Trace0 automatically every 5 seconds in the background. Finally, add these signal handlers to guarantee delivery of the final log batch on shutdown.
The library will automatically capture all logging output, inject OTel trace context (traceId, spanId), and export the logs to the Trace0 ingest endpoint.

5. Kubernetes Setup

If your application runs on Kubernetes, including Amazon EKS, Google Kubernetes Engine or Azure Kubernetes Service, add the following environment variables to your container specification.

6. Deploy Service

Deploy your service and watch traces, metrics, and logs appear in the Trace0 dashboard within seconds.

Example Service

See our Node.js Express EC2 example app for a working service you can deploy to your AWS account.