Documentation Index
Fetch the complete documentation index at: https://private-7c7dfe99-page-updates.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Monitoring Nginx Traces with ClickStack
TL;DRCapture distributed traces from Nginx in ClickStack using the OpenTelemetry Nginx module. Includes a demo dataset and pre-built dashboard.
Integration with existing Nginx
This section covers adding distributed tracing to your existing Nginx installation by installing the OpenTelemetry module and configuring it to send traces to ClickStack. If you would like to test the integration before configuring your own existing setup, you can test with our preconfigured setup and sample data in the following section.- ClickStack instance running with OTLP endpoints accessible (ports 4317/4318)
- Existing Nginx installation (version 1.18 or higher)
- Root or sudo access to modify Nginx configuration
- ClickStack hostname or IP address
Install OpenTelemetry Nginx module
The easiest way to add tracing to Nginx is using the official Nginx image with OpenTelemetry support built-in.Replace your current Nginx image with the OpenTelemetry-enabled version:ngx_otel_module.so pre-installed and ready to use.If you’re running Nginx outside of Docker, refer to the OpenTelemetry Nginx documentation for manual installation instructions.
Configure Nginx to send traces to ClickStack
Add OpenTelemetry configuration to yournginx.conf file. The configuration loads the module and directs traces to ClickStack’s OTLP endpoint.First, get your API key:- Open HyperDX at your ClickStack URL
- Navigate to Settings → API Keys
- Copy your Ingestion API Key
- Set it as an environment variable:
export CLICKSTACK_API_KEY=your-api-key-here
nginx.conf:<clickstack-host> with your ClickStack instance hostname or IP address.- Port 4317 is the gRPC endpoint used by the Nginx module
- otel_service_name should be descriptive of your Nginx instance (e.g., “api-gateway”, “frontend-proxy”)
- Change otel_service_name to match your environment for easier identification in HyperDX
- Request method and path
- HTTP status code
- Request duration
- Timestamp
otel_span_attr directives add metadata to each trace, allowing you to filter and analyze requests in HyperDX by status code, method, route, etc.After making these changes, test your Nginx configuration:Verifying traces in HyperDX
Once configured, log into HyperDX and verify traces are flowing, you should see something like this, if you don’t see traces, try adjusting your time range:Demo dataset
For users who want to test the nginx trace integration before configuring their production systems, we provide a sample dataset of pre-generated Nginx Traces with realistic traffic patterns.Start ClickStack
If you don’t have ClickStack running yet, start it with:- Port 8080: HyperDX web interface
- Port 4317: OTLP gRPC endpoint (used by nginx module)
- Port 4318: OTLP HTTP endpoint (used for demo traces)
Download the sample dataset
Download the sample traces file and update timestamps to the current time:- 1,000 trace spans with realistic timing
- 9 different endpoints with varied traffic patterns
- ~93% success rate (200), ~3% client errors (404), ~4% server errors (500)
- Latencies ranging from 10ms to 800ms
- Original traffic patterns preserved, shifted to current time
Send traces to ClickStack
Set your API key as an environment variable (if not already set):- Open HyperDX at your ClickStack URL
- Navigate to Settings → API Keys
- Copy your Ingestion API Key
Running on localhostThis demo assumes ClickStack is running locally on
localhost:4318. For remote instances, replace localhost with your ClickStack hostname.{"partialSuccess":{}} indicating the traces were successfully sent. All 1,000 traces will be ingested into ClickStack.Verify traces in HyperDX
- Open HyperDX and log in to your account (you may need to create an account first)
- Navigate to the Search view and set the source to
Traces - Set the time range to 2025-10-25 13:00:00 - 2025-10-28 13:00:00
Timezone DisplayHyperDX displays timestamps in your browser’s local timezone. The demo data spans 2025-10-26 13:00:00 - 2025-10-27 13:00:00 (UTC). The wide time range ensures you’ll see the demo traces regardless of your location. Once you see the traces, you can narrow the range to a 24-hour period for clearer visualizations.
Dashboards and visualization
To help you get started monitoring traces with ClickStack, we provide essential visualizations for trace data.the dashboard configuration
Import the pre-built dashboard
- Open HyperDX and navigate to the Dashboards section.
- Click “Import Dashboard” in the upper right corner under the ellipses.
- Upload the nginx-trace-dashboard.json file and click finish import.
The dashboard will be created with all visualizations pre-configured.
For the demo dataset, set the time range to 2025-10-26 13:00:00 - 2025-10-27 13:00:00 (UTC) (adjust based on your local timezone). The imported dashboard won’t have a time range specified by default.
Troubleshooting
No traces appearing in HyperDX
Verify nginx module is loaded:Next steps
- Set up alerts for critical metrics (error rates, latency thresholds)
- Create additional dashboards for specific use cases (API monitoring, security events)