Skip to content

Incidents & Tickets Dashboard

Incidents & Tickets dashboard overview

Online Demo

Explore a live read-only instance at demo.cdviz.dev/grafana — search for the Incidents & Tickets dashboard.

Overview

The Incidents & Tickets dashboard surfaces operational health signals by tracking incidents and change events across your SDLC. It consolidates data from incident management tools (PagerDuty, Opsgenie, alerting pipelines) and ticketing or change-management systems (Jira, GitHub Issues, GitLab Issues) as long as they emit CDEvents.

Key questions answered:

  • How many incidents are open right now, and how long have they been open?
  • What is the median time to resolve incidents (MTTR / FDRT)?
  • How many changes are in flight — created, in review, merged, abandoned?
  • What is the cycle time from change creation to merge?

Dashboard Panels

Incident Summary

An at-a-glance stat row showing:

StatDescription
Open IncidentsCount of detected but not yet resolved incidents in the selected time window
Resolved IncidentsCount of resolved incidents in the selected time window
Median TTRMedian time from incident.detected to incident.resolved
P95 TTR95th-percentile time to restore — surfaces outlier incidents

Incidents Over Time

Time series of incident detections and resolutions grouped by day or week, making it easy to spot correlations with deployment waves or infrastructure changes.

Open Incidents Table

Scrollable table of currently open incidents with columns: incident ID, subject, source, detected timestamp, and age. Sorted by age (oldest first) to surface stale incidents.

Incident Severity Distribution

Bar chart grouping incidents by severity or type extracted from the CDEvent payload. Useful for understanding whether most incidents are low-noise alerts or high-severity outages.

Change/Ticket Summary

Stat row for change events:

StatDescription
Changes Createdchange.created events in the selected window
Changes Mergedchange.merged events
Changes Abandonedchange.abandoned events
Median Cycle TimeMedian time from change.created to change.merged

Change Cycle Time Histogram

Distribution of cycle times (creation → merge). Helps identify whether most changes are fast (hours) or slow (days/weeks).

Changes By State Table

Scrollable list of recent changes with their current state, subject, source, and timestamps.

Dashboard Variables

  • environment — filter incidents by environment (from the CDEvent subject or payload fields)
  • source — filter by the tool or service that emitted the events (e.g. pagerduty, jira)

CDEvents Requirements

Event typeUsed by
incident.detectedOpen Incidents, Incidents Over Time, TTR
incident.reportedOpen Incidents, Incidents Over Time
incident.resolvedResolved Incidents, TTR, Incidents Over Time
change.createdChange Summary, Cycle Time
change.reviewedChange activity
change.mergedChange Summary, Cycle Time
change.abandonedChange Summary

NOTE

Panels show no data — not zero — when the required event types have not been emitted. If your tools do not yet emit CDEvents natively, configure the CDviz Collector to translate webhook payloads using transformer rules.

Connecting Your Tools

PagerDuty / Opsgenie

Configure a webhook in your incident tool pointing to the CDviz Collector webhook source, then apply a transformer rule to map the tool-specific payload to incident.detected / incident.resolved CDEvents.

See the Transformer Rules documentation for mapping examples.

Jira / GitHub Issues / GitLab Issues

Use the corresponding CDviz Collector integration or a webhook transformer to emit change.created, change.merged, and change.abandoned CDEvents from issue state transitions.

Technical Notes

MTTR vs FDRT

The Median Time to Restore (MTTR) calculated here covers all incidents, not only those triggered by a specific deployment. The DORA 2023 specification introduced Failed Deployment Recovery Time (FDRT) as a deployment-scoped variant. For FDRT, use the DORA Metrics dashboard which correlates incident.resolved with the causal service.deployed event.

Cycle Time Calculation

Cycle time is computed as change.merged.timestamp − change.created.timestamp. Changes that are abandoned (never merged) are excluded from this calculation.

Source Code References