A diagnostic tool for OpenTelemetry Collector. Paste your Collector YAML, connect to a live Prometheus endpoint, or tap OTLP traffic. Get actionable recommendations to reduce telemetry noise and improve pipeline health.
docker build -t signal-studio .
docker run -p 8080:8080 signal-studioOpen http://localhost:8080.
Paste or upload your Collector YAML to get pipeline visualization, linting findings, and copy-paste remediation snippets. Covers missing processors, ordering issues, security concerns, and misconfigurations across a suite of static rules.
Connect to a running Collector's Prometheus endpoint to see per-pipeline throughput, per-component rates, queue utilization, and live anomaly detection (high drop rates, queue saturation, receiver-exporter mismatches).
Discover metric names and attributes flowing through your Collector by adding a fan-out exporter. The UI shows the exact YAML snippet to add. The tap builds a live catalog of metric metadata — names, types, attribute keys, sample values, and cardinality — and predicts which metrics your filter processors would keep or drop (legacy + OTTL syntax, including attribute-based expressions).
Enabled by default; disable with SIGNAL_STUDIO_TAP_DISABLED=true.
Paste Prometheus alerting rules to detect alerts that reference metrics your Collector would drop or fail to deliver. Supports both raw rule files and Kubernetes PrometheusRule CRDs.
| Variable | Default | Description |
|---|---|---|
SIGNAL_STUDIO_PORT |
8080 |
HTTP server port |
SIGNAL_STUDIO_SCRAPE_INTERVAL_SECONDS |
10 |
Metrics polling interval (5–30) |
SIGNAL_STUDIO_MAX_YAML_SIZE_KB |
256 |
Maximum YAML body size |
SIGNAL_STUDIO_CORS_ORIGINS |
* |
Allowed CORS origins (comma-separated) |
SIGNAL_STUDIO_TAP_DISABLED |
false |
Disable the OTLP sampling tap |
SIGNAL_STUDIO_TAP_GRPC_ADDR |
:5317 |
gRPC listen address for the OTLP tap |
SIGNAL_STUDIO_TAP_HTTP_ADDR |
:5318 |
HTTP listen address for the OTLP tap |
To run the entire solution in one go
just dev
If you want to run the backend and frontend independently, instead do the following:
Backend (Go 1.24+):
cd backend
go run ./cmd/serverFrontend (Node 22+):
cd frontend
npm install
npm run devVite starts on :5173 and proxies /api requests to the backend.
- Rules reference — full list of static, live, and catalog rules
- API reference — HTTP endpoints
- Architecture decisions — ADRs documenting design choices
- Generating docs — how to regenerate documentation from code


