Overview
SigNoz can store and visualize Prometheus metrics. If you are already exposing metrics in Prometheus format (e.g., from a /metrics endpoint), you don't need to change your code. You can simply configure the OpenTelemetry Collector to "scrape" (collect) these metrics and send them to SigNoz.
Prerequisites
- SigNoz Otel Collector installed: You need the OpenTelemetry Collector running in your environment. See Installation Guides.
- Access to Configuration: You must be able to edit the
otel-collector-config.yamlfile where the collector is running. - A Target: An application or service exposing metrics on an HTTP endpoint (usually
/metrics).
Steps
To start collecting Prometheus metrics, you need to configure the Prometheus Receiver in your collector.
Step 1: Configure the Scrape Job
Open your otel-collector-config.yaml file. In the receivers > prometheus > config > scrape_configs section, you define "jobs". A job tells the collector what to scrape and how often.
Add a new job for your service:
receivers:
prometheus:
config:
scrape_configs:
# Scrape the collector's own metrics
- job_name: "otel-collector"
scrape_interval: 30s
static_configs:
- targets: ["localhost:8889"]
# Scrape your application metrics
- job_name: "my-app-metrics"
scrape_interval: 30s
static_configs:
- targets: ["localhost:8080"]
Step 2: Enable the Receiver in the Pipeline
Ensure the prometheus receiver is added to your metrics pipeline. This is usually enabled by default, but it's good to verify.
Scroll down to service > pipelines > metrics and check the receivers list:
service:
pipelines:
metrics:
# Ensure 'prometheus' is in this list
receivers: [otlp, prometheus]
processors: [batch]
exporters: [otlp]
Step 3: Restart the Collector
For the changes to take effect, restart the OpenTelemetry Collector.
Validate
- Go to the Metrics Explorer in SigNoz.
- Search for a metric from your application (e.g.,
http_requests_totalorgo_goroutines). - Run the query to confirm data is flowing.
Troubleshooting
If you don't see metrics:
- Check Logs: Look at the OpenTelemetry Collector logs for connection errors (e.g., "connection refused").
- Verify Endpoint: Ensure you can
curlthe metrics endpoint from the machine running the collector. - Check Job Name: Ensure the
job_nameis unique in your config.
Next Steps
- Create Dashboards: Visualize your Prometheus metrics by creating custom dashboards. Learn more.
- Set Alerts: Configure alerts to get notified when metrics cross a threshold. Learn more.
Get Help
If you need help with the steps in this topic, please reach out to us on SigNoz Community Slack.
If you are a SigNoz Cloud user, please use in product chat support located at the bottom right corner of your SigNoz instance or contact us at cloud-support@signoz.io.