# SigNoz Integration Query logs, metrics, and traces from [SigNoz](https://signoz.io) via the Query Range API. OpenSRE uses `POST /api/v5/query_range` for `query_signoz_logs`, `query_signoz_metrics`, and `query_signoz_traces`. Configure **`SIGNOZ_URL`** and **`SIGNOZ_API_KEY`** (service account key). ## Quick Start If you already run SigNoz, skip to env setup below. If you want a local stack, use the [official SigNoz Docker setup](https://signoz.io/docs/install/docker/). ```bash docker compose -f signoz/docker/docker-compose.yaml up -d # ... later docker compose -f signoz/docker/docker-compose.yaml down ``` Local Docker serves the UI and API on **http://localhost:8080** (not 3301). ### 1. Create an API key In SigNoz: **Settings → Service Accounts** → create a service account → **Keys** → **Add Key**. Copy the key (shown once). ### 2. Configure environment variables ```bash export SIGNOZ_URL="http://localhost:8080" export SIGNOZ_API_KEY="" ``` ### 3. Verify connectivity ```bash uv run opensre integrations verify signoz ``` Expected output mentions the SigNoz Query API (`/api/v2/metrics`, `/api/v5/query_range`). ### 4. Use the tools When `alert_source` is `signoz`, the agent auto-seeds three tools before the ReAct loop: - **`query_signoz_logs`** — Search logs by service, severity, and time window. - **`query_signoz_metrics`** — Query CPU, memory, and request-rate signals. - **`query_signoz_traces`** — Query error spans, latency percentiles, and dependencies. ## Webhook Configuration SigNoz emits Prometheus-style webhook payloads. To trigger OpenSRE investigations automatically: 1. In SigNoz, go to **Settings → Notification Channels**. 2. Create a **Webhook** channel pointing at your OpenSRE instance: ``` POST https://your-opensre-instance/investigate ``` 3. The agent will detect `alert_source: signoz` from the payload and auto-query logs, metrics, and traces. ## CLI Setup ```bash opensre integrations setup signoz ``` You will be prompted for SigNoz URL and API key only. ## Supported Metrics (V1) | Alias | Actual SigNoz Metric | |-------|---------------------| | `cpu_usage` | `system_cpu_usage` | | `memory_usage` | `system_memory_usage` | | `request_rate` | `signoz_calls_total` | You can also pass any raw metric name known to SigNoz. For latency percentiles (p95/p99), prefer `query_signoz_traces`. ## API reference - Endpoint: `POST {SIGNOZ_URL}/api/v5/query_range` - Auth header: `SigNoz-Api-Key: ` - Validation probe: `GET {SIGNOZ_URL}/api/v2/metrics` ## Example Investigation ```bash uv run opensre investigate --input-json '{ "alert_source": "signoz", "alert_name": "HighErrorRate", "pipeline_name": "payment-service", "severity": "critical", "commonLabels": { "service_name": "payment-service", "severity": "critical" }, "commonAnnotations": { "summary": "Error rate exceeded 5%" } }' ``` ## Troubleshooting | Symptom | Fix | |---------|-----| | `SigNoz configuration is incomplete` | Set both `SIGNOZ_URL` and `SIGNOZ_API_KEY`. | | `HTTP 401` on verify | Regenerate the service account key; check URL (local Docker: port **8080**). | | `No logs returned` | Confirm telemetry exists in SigNoz and filter fields match (`service.name` for logs). | | `No metrics returned` | Verify the metric name in SigNoz Metrics Explorer; empty results return a warning for unknown metrics. |