Skip to content

docs(otel): importable SigNoz dashboard for governed runs - #138

Merged
prashar32 merged 2 commits into
mainfrom
docs/signoz-dashboard
Jun 14, 2026
Merged

docs(otel): importable SigNoz dashboard for governed runs#138
prashar32 merged 2 commits into
mainfrom
docs/signoz-dashboard

Conversation

@prashar32

Copy link
Copy Markdown
Owner

examples/otel/grafana/ ships a provisioned Grafana + Tempo dashboard built from RiskKernel's spans. This adds the equivalent for SigNoz, so teams already running it get "feed your existing observability" as a single import too.

What's here

  • examples/otel/signoz/dashboards/riskkernel-agent-runs.json — an importable SigNoz dashboard (Query Builder v5 / dot-preserving attribute schema) with the same panels as the Grafana one:
    • Total spend, output tokens, model calls, tool calls refused (single-value stats)
    • Spend over time, spend by run (riskkernel.run.id)
    • p95 latency by model, model-call rate by model, output tokens by model (gen_ai.request.model)
    • Tool calls by outcome (riskkernel.tool.status)
    • Budget halts by reason (riskkernel.halt.reason)
  • examples/otel/signoz/README.md — how to point RiskKernel's OTLP export at SigNoz (self-hosted and Cloud, with the ingestion-key header) and how to import the dashboard. Honest about the service-name filter, durationNano for latency, and pre-v5 SigNoz where attribute keys were underscore-normalized.
  • Cross-link from the Grafana example README, and a changelog entry.

Notes

  • Every attribute the queries touch is one of the names pinned in api/v1/otel-genai.mdgen_ai.operation.name, gen_ai.request.model, gen_ai.usage.output_tokens, riskkernel.cost.usd, riskkernel.run.id, riskkernel.halt.reason, riskkernel.tool.status — so the panels track the stable public contract.
  • The JSON validates (python3 -c "import json; json.load(...)") and uses the v5 dashboard shape (version: "v5", widgets/layout/panelMap, builder queryData with aggregations/filter.expression/groupBy), matching SigNoz's current import format.

Closes #89

Add examples/otel/signoz with an importable SigNoz dashboard JSON and a
short setup README, mirroring the existing Grafana + Tempo example. The
dashboard is built from the OpenTelemetry GenAI spans RiskKernel already
exports, so SigNoz users get the same cost/governance view as one JSON
import: spend per run, budget halts by reason, tool-call outcomes, and
latency and token burn by model.

Targets SigNoz Query Builder v5 (dot-preserving attribute schema), so it
references the gen_ai.* / riskkernel.* attributes by their pinned dotted
names from api/v1/otel-genai.md. Cross-link from the Grafana example and
record it in the changelog.
@prashar32
prashar32 merged commit e8e9682 into main Jun 14, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Example dashboards for SigNoz and Datadog

1 participant