Grafana dashboards

Control Core ships reference Grafana dashboards for shadow compliance discovery, NHI activity, AI cost controls, compliance posture, and bouncer fleet operations.

Bundled dashboards

DashboardUIDPurpose
Shadow discoverycc-01-shadow-discoveryShadow events, discovery candidates, compliance log tail
NHI activitycc-02-nhi-activityNon-human identity decisions, agent denials, service account rate
AI cost controlscc-03-ai-cost-controlsToken usage, circuit-breaker trips, model fallback routing
Compliance posturecc-04-compliance-posturePack observation counts, gap trends, shadow vs enforce ratio
Bouncer fleetcc-05-bouncer-fleetPEP heartbeat, Policy Bridge sync lag, decision latency P99
Bouncer decisionscc-03-bouncer-decisionsLegacy panel set — prefer cc-05-bouncer-fleet for fleet ops

Dashboard JSON lives in the customer observability package under grafana/dashboards/.

cc-02-nhi-activity

Panels: NHI decision rate by subject.type, top denied nhi_id, agent vs service account split.

Sample LogQL:

sum by (subject_type) (
  count_over_time({job="bouncer"} | json | subject_type != "" [$__interval])
)

Review: Compare to registered agents in PIP inventory weekly. Spikes in ai_agent denies → review NHI verification controls.

cc-03-ai-cost-controls

Panels: Tokens per minute, AI_TOKEN_BUDGET_EXCEEDED events, BackendTrafficPolicy fallback count.

Sample LogQL:

sum(count_over_time({job="bouncer"} |~ "AI_TOKEN_BUDGET" [$__interval]))

Review: Align with provider billing API; tune token circuit-breaking caps.

cc-04-compliance-posture

Panels: Observations per compliance pack, SHADOW_WOULD_DENY trend, enforce promotion readiness score.

Review: Use alongside Control Plane Compliance & Gaps for executive exports — Grafana for time-series; UI for clause mapping.

cc-05-bouncer-fleet

Panels: Active PEP count, stuck Policy Bridge sync rows, heartbeat age histogram, sub-5ms decision latency band.

Sample LogQL:

max by (bouncer_id) (
  timestamp({job="bouncer"} | json | event="heartbeat") - timestamp({job="bouncer"} | json | event="heartbeat" offset 5m)
)

Review: pending_in_progress_sync_rows > 0 for > 2 min → page SRE; see GET /health/policy-bridge on Control Plane API.

Import procedure

  1. Open Grafana → DashboardsImport.
  2. Upload JSON from grafana/dashboards/ (e.g. 02-nhi-activity.json).
  3. Select your Loki datasource (UID loki or map to your instance).
  4. Save and set refresh to 30s during discovery pilots.

Troubleshooting: If panels show No data, confirm Loki retention covers your pilot window and that Bouncer traffic is flowing. Cross-check Control Plane Compliance & Gaps for SHADOW_WOULD_DENY counts. See Troubleshooting.

Align with Control Plane UI

Grafana complements — does not replace — the Sovereign Compliance Dashboard. Use Grafana for SRE time-series; use /compliance for gap cache, pack observations, and executive JSON reports.

Related: Shadow discovery hub · Observe & audit · Grafana setup