Monitoring Nginx Traces with ClickStack

Verify traces in HyperDX

#### Verify traces in HyperDX[​](#verify-demo-traces "Direct link to Verify traces in HyperDX")

1. Open [HyperDX](http://localhost:8080/) and log in to your account (you may need to create an account first)
2. Navigate to the Search view and set the source to `Traces`
3. Set the time range to **2025-10-25 13:00:00 - 2025-10-28 13:00:00**

Here's what you should see in your search view:

Timezone Display

HyperDX 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[​](#dashboards "Direct link to Dashboards and visualization")

To help you get started monitoring traces with ClickStack, we provide essential visualizations for trace data.

Download the dashboard configuration

#### [Download](/docs/examples/nginx-traces-dashboard.json) the dashboard configuration[​](#download "Direct link to download")

Import the pre-built dashboard

#### Import the pre-built dashboard[​](#import-dashboard "Direct link to Import the pre-built dashboard")

1. Open HyperDX and navigate to the Dashboards section.
2. Click "Import Dashboard" in the upper right corner under the ellipses.

3. Upload the nginx-trace-dashboard.json file and click finish import.

The dashboard will be created with all visualizations pre-configured.

#### The dashboard will be created with all visualizations pre-configured.[​](#created-dashboard "Direct link to The dashboard will be created with all visualizations pre-configured.")

Note

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[​](#troubleshooting "Direct link to Troubleshooting")

### No traces appearing in HyperDX[​](#no-traces "Direct link to No traces appearing in HyperDX")

**Verify nginx module is loaded:**

```
nginx -V 2>&1 | grep otel
```

You should see references to the OpenTelemetry module.

**Check network connectivity:**

```
telnet <clickstack-host> 4317
```

This should connect successfully to the OTLP gRPC endpoint.

**Verify API key is set:**

```
echo $CLICKSTACK_API_KEY
```

Should output your API key (not empty).

**Check nginx error logs:**

```
# For Docker
docker logs <nginx-container> 2>&1 | grep -i otel

# For systemd
sudo tail -f /var/log/nginx/error.log | grep -i otel
```

Look for OpenTelemetry-related errors.

**Verify nginx is receiving requests:**

```
# Check access logs to confirm traffic
tail -f /var/log/nginx/access.log
```

## Next steps[​](#next-steps "Direct link to Next steps")

- Set up [alerts](/docs/use-cases/observability/clickstack/alerts) for critical metrics (error rates, latency thresholds)
- Create additional [dashboards](/docs/use-cases/observability/clickstack/dashboards) for specific use cases (API monitoring, security events)

## Going to production[​](#going-to-production "Direct link to Going to production")

This guide sends traces directly from the Nginx OpenTelemetry module to ClickStack's OTLP endpoint. For production deployments, we recommend running your own OTel Collector as a gateway to provide batching and resilience. See [Sending OpenTelemetry data](/docs/use-cases/observability/clickstack/ingesting-data/opentelemetry) for production configuration.

- [Integration with existing Nginx](#existing-nginx)- [Demo dataset](#demo-dataset)- [Dashboards and visualization](#dashboards)- [Troubleshooting](#troubleshooting)
        - [No traces appearing in HyperDX](#no-traces)- [Next steps](#next-steps)- [Going to production](#going-to-production)

Was this page helpful?