Skip to content

5.1. Incidents

The alerts raised automatically when an SLO (service level objective) is breached or a system anomaly is detected, and the analysis of their root cause.

The incidents screen

Overview

The Incidents menu shows every incident OPENMARU Observability detected automatically. An incident is an alert raised when a service level objective (SLO) is breached or an application anomaly is detected.

On this screen you can look at both ongoing and resolved incidents and check each one's severity, duration, the proportion of requests affected and how much of the error budget it consumed. Click an incident to open its detail page, where root cause analysis (RCA) helps you establish why it happened.

Screen layout

The Incidents page is made up of the following areas.

  • Top header: the application filters
  • Status summary strip: incident counts by severity, and the option to show resolved incidents
  • Incident list table: every incident, with its SLO impact

Main features

Reading the status summary strip

The status summary strip

The status summary strip at the top of the screen gives the incident count per severity at a glance.

StateMeaning
CriticalIncidents needing immediate action
WarningIncidents needing attention
Resolved (critical)Incidents resolved from a critical state
Resolved (warning)Incidents resolved from a warning state

Click an entry to filter the list to incidents in that state. Click again to clear the filter.

Tip: clicking Critical gets you quickly to the incidents that need an immediate response.

Showing resolved incidents

The show-resolved toggle

By default only ongoing (unresolved) incidents are shown. Tick Show resolved incidents to include resolved ones as well.

Resolved incidents appear translucent in the list, with a Resolved badge in the duration column.

Note: the show-resolved setting is saved in the browser, so your last choice persists into your next visit.

Old incidents are removed automatically

Incident and alert history is deleted by the server once it is older than the metric cache retention period plus two days. With the default settings (a 30-day cache) that is about 32 days.

The cut-off follows the cache because an incident is of little use once the charts behind it are gone. The history and the evidence disappear together.

Note: unresolved incidents and alerts are never removed, however old they are. Anything that has dropped off the list was resolved.

To keep history longer, raise the server's cache retention (cache-ttl). That needs proportionally more metric storage.

Application filters

The application filters

Use the application filters at the top right of the page to show incidents for particular applications or namespaces only. You can also search by incident ID or keyword to find one quickly.

The incident list table

The incident list table

The incident list table carries the following.

ColumnDescription
IncidentThe incident ID (for example i-123), coloured by severity.
ApplicationThe application the incident occurred on
NamespaceThe namespace the application belongs to
KindThe Kubernetes workload kind (Deployment, StatefulSet and so on), or ExternalService
OpenedWhen the incident was first detected, and how long ago
DurationHow long the incident lasted. Ongoing incidents get an Unresolved badge, finished ones a Resolved badge
AvailabilityThe availability SLO compliance rate. A breach is highlighted in red.
Response timeThe latency SLO compliance rate. A breach is highlighted in red.
Requests affectedThe proportion of requests the incident affected (as a bar)
Error budget consumedHow much of the error budget was consumed (as a bar). Above 100% it turns red.

Note: the availability, response time, requests affected and error budget consumed values come from further analysis of the incident data, so a spinner may appear while they load.

Click a column header to sort by it, ascending or descending.

Adjusting SLOs

The SLO adjustment menu

Click the more (...) button at the right of an incident row to adjust that application's SLO thresholds quickly.

  • Adjust availability SLO: change the availability SLO threshold
  • Adjust response time SLO: change the latency SLO threshold
  • Resend alert: resends the alert (shown for unresolved incidents only).

Note: an SLO threshold adjustment applies to that application only. Change the defaults for everything under Settings > Inspection conditions.


Incident details

Click an incident ID or an application name in the list to open that incident's detail page.

The incident detail screen

Header information

The incident detail header

The top of the detail page carries the following.

  • Incident ID: a unique identifier prefixed with i-
  • Severity badge: critical or warning
  • State badge: Still ongoing while it continues, Resolved once it has finished
  • Metadata: application name, namespace, start time, duration

Click the Incidents link to return to the incident list page.

Incident details

The incident details section

The Incident details section lays out the incident's basic properties as a grid.

ItemDescription
SeverityCritical or warning, as a coloured badge.
ApplicationThe application affected. Click it to open that application's detail dialog.
StartedWhen the incident was first detected, and how long ago
ResolvedThe resolution time, or the Still ongoing state
DurationThe total duration of the incident
CategoryThe application category. Click it to open that application's detail page.

Service level objectives (SLO) section

The SLO section

The Service level objectives (SLO) section shows which SLO the incident occurred on, as a table.

ColumnDescription
SLOThe SLO's name (availability or response time). It carries a green check or a red warning icon depending on whether it was breached.
ComplianceThe actual SLO compliance rate. A breach is highlighted in red.
TargetThe SLO target (for example "99% of requests must be served within 500 ms"). Click the pencil icon to edit the SLO threshold directly.

Analysis tabs

The analysis tabs

Two analysis tabs sit at the bottom of the incident detail page.

TabDescription
Root cause analysis (RCA)The system's automatic analysis of the incident's cause. Selected by default.
TracesTrace data from the period the incident covered

The RCA (root cause analysis) tab

The RCA tab is selected by default on the incident detail page and shows the system's automatic analysis of why the incident happened. It has five sections; four of them — SLI, propagation path, causal timeline and detailed report — can be collapsed and expanded, the root cause summary excepted.

1. Service level indicators (SLI) section

The SLI section

The service level indicator (SLI) section charts the state of the service over the incident's analysis period. The section header carries the target application's name and the incident ID.

It contains two sub-areas.

The response time heatmap

The response time heatmap

Visualises the distribution of response times over the incident period as a heatmap. The X axis is time, the Y axis is response time, and colour intensity is the density of requests in that cell. Drag to select a region on the heatmap and the application detail dialog opens, where you can look at the trace data for that period.

The SLI charts

The SLI charts

A response time chart and an error rate chart sit side by side, showing how the service's performance moved over the analysis period.

  • Response time chart: how request response times trended over the analysis period
  • Error rate chart: how errors trended over the analysis period

A note below the charts explains that they cover the analysis period's SLIs.

Tip: drag to select a period on the SLI charts and you get a detailed analysis of it (an RCA confined to that time range). The selected period is highlighted on the chart.

2. Root cause analysis summary

The root cause analysis summary card

A card summarising the system's automatic analysis of the incident's cause. It has three parts.

Findings by severity

Badges at the top right of the card give the number of findings by severity.

BadgeMeaning
CriticalFindings needing immediate action
WarningFindings needing attention
N foundThe total number of findings

The estimated root cause

The estimated root cause, highlighted

The most likely cause of the incident is shown in a highlighted card, containing the following.

  • Cause title: what is believed to be the root cause (a deployment change, resource saturation, an upstream failure, and so on)
  • Application name: the application the root cause occurred on
  • Description: further explanation of the cause (the deployment at a particular time, an error count, and so on)

Categorisation

The findings are grouped into the following categories and shown as chips, each carrying that category's finding count.

CategoryDescription
DeploymentCauses relating to deployment changes (a new version, a rollout event)
UpstreamAn upstream service's failure or SLO breach affecting this service
ResourceCauses relating to resource saturation — CPU, memory, disk
LogCauses relating to anomalous log patterns
SLOAnother service's SLO breach affecting this one in a chain
DatabaseDatabase-related issues

3. Issue propagation path

The issue propagation path

Where an incident affected several applications, this visualises the path the failure propagated along as a service dependency map. The section header gives the number of applications involved.

Reading the propagation path

  • Nodes (applications): each rectangle is one application. The node's border colour is that application's state (red: critical, yellow: warning, green: healthy).
  • Arrows (connections): the direction of traffic between applications. The arrow's colour is that connection's state. Connections in a critical or warning state carry a flow animation.
  • Incident marker: the application the incident occurred on (the target application) carries a crosshair icon.
  • Root cause marker: the application believed to be the root cause carries a star icon.
  • The causal path: the nodes and connections on the causal path from the root cause to the incident target are highlighted.
  • Traffic statistics: traffic statistics labels sit on the connections. Hover over an application and only the services directly connected to it stay highlighted; the rest dim.

Tip: click an application name to open its detail dialog and analyse its metrics, logs and distributed traces further.

Note: you can zoom the map area with the mouse wheel and pan it by dragging. Double-click an empty area to restore the default position.

4. Causal timeline

The causal timeline

Lists the related events either side of the incident in time order, so you can follow the chain of causation that led to it. The section header gives the event count.

Switching view mode

The causal timeline offers two view modes, switched with the buttons at the right of the section header.

Compact view

The causal timeline, compact view

Summary statistics for the events appear at the top.

StatisticMeaning
EventsThe total number of events on the timeline
CriticalEvents at critical level
WarningEvents at warning level
Estimated root causeMarks the event believed to be the root cause

Below the statistics, each event is listed compactly on one line carrying the time, a severity dot, the application name and the event title. The root cause event gets an Estimated root cause badge, and the moment of the incident gets an Incident badge.

Full view

The causal timeline, full view

Each event is shown in detail as a card, arranged vertically along the time axis. Each event card carries the following.

  • Time: when the event was detected
  • Severity marker: a coloured round marker for the severity (red: critical, yellow: warning, green: informational)
  • Category chip: the event's cause category (deployment, database, resource, upstream, log, SLO)
  • Severity chip: the event's severity level
  • Application link: the related application's name (click to open its detail dialog)
  • Event title: the finding's title (for example "SLO: availability", "Deployment change: v2.1.0")
  • Description: further information about the event

The card for the event believed to be the root cause is highlighted with a red left border and a blinking effect, and carries an Estimated root cause badge.

The moment of the incident is inserted into the timeline as its own incident card, so you can see visually which events came before and after. Where the incident is still running, In progress appears instead of an end time.

Tip: comparing the time of the root cause event with the time of the incident on the causal timeline tells you the interval between cause and effect.

5. The detailed RCA report

The detailed RCA report

Presents the analysis of each individual finding as a tree, letting you explore the incident's causes hierarchically.

The incident time range

A bar at the top of the detailed RCA report gives the incident's time range. It carries the target application's name and the incident's start and end times; where the incident is still running, In progress appears instead of an end time.

Understanding the tree

The RCA report tree

The tree's root node is the SLO breach on the application the incident occurred on. Below it sit group nodes for each cause category, and below each group, the individual finding nodes.

What a tree node carries

Each node shows the following.

ElementDescription
Collapse/expand arrowWhere the node has children, click to collapse or expand them
Node nameThe category name or the finding's title
Application linkAn icon that takes you to the related application (click to open its detail dialog)
Estimated root cause badgeA red badge on the node judged to be the root cause
Incident badgeShown on the incident's target node
Possible cause iconA red warning icon on nodes that may be a cause
Confidence badgeThe confidence level of the cause (high, medium, low)
SparklineThe item's time-series data as a small line chart. The incident's period is shaded red.
Time rangeThe period over which the event occurred

Category group nodes

The category group nodes gather the findings by type.

CategoryDescription
Deployment changesDeployments and rollout events during the analysis period
Upstream service issuesA failure or SLO breach in an upstream service
Resource saturationSaturation of infrastructure resources — CPU, memory, disk
Log anomaliesA spike in error or warning level log patterns
SLO chainAnother service's SLO breach affecting this one in a chain
Database issuesDegraded database response times, connection problems and so on

Finding nodes

The leaf nodes, the findings, carry the specifics of each cause.

  • Application name: the application the cause occurred on
  • Report category: the relevant report area (SLO, CPU, memory, network and so on)
  • Inspection item: the name of the inspection condition whose threshold was passed
  • Sparkline: how that metric trended. Hover over the chart and a tooltip gives the value and time at that point.

Each finding's sparkline also shades the incident's period in red with a dotted line, so you can see visually how the cause event and the incident relate in time.

Looking at a node in detail

The RCA node detail dialog

Click a finding node and a detail dialog opens. What it offers depends on the type of cause.

Log pattern details

Click a finding in the log anomaly category and a log pattern dialog opens carrying the following.

  • Severity: the log level (critical, error, warning, info, debug)
  • Occurrences: how many times that log pattern occurred in total
  • Time-series chart: how the log pattern's occurrences trended
  • Sample messages: actual log messages matching that pattern

Click View messages at the bottom of the dialog to see every log message with the same pattern on that application's logs tab.

Metric details

Click a metric-based finding — a resource, an SLO — and that metric's detail widget (a chart) appears in a dialog, so you can compare visually how the metric moved either side of the incident.


The traces (distributed tracing) tab

The traces tab

The Traces tab of the incident details shows trace data from the period the incident covered. The trace heatmap and trace list are filtered automatically to the incident's application and its time range.

Where a response time SLO is configured, traces that passed that threshold are filtered in automatically. Click a trace to see its span details.

Tip: analysing the traces whose response time spiked lets you verify the root cause RCA estimated, at the level of an actual request flow.


The incident investigation workflow

To investigate an incident effectively, follow these steps.

  1. Read the situation from the incident list: check the critical and warning incident counts on the status summary strip.
  2. Choose the incident: use the severity or application filters to pick the incident to investigate.
  3. Check the SLO breach: on the incident detail page, check the compliance rates of the availability and latency SLOs.
  4. Establish the cause from the RCA summary: read the estimated root cause and the categorisation in the root cause analysis summary on the RCA tab.
  5. Analyse the propagation path: see from the issue propagation path where the failure started and where it spread.
  6. Review the causal timeline: work out from the causal timeline how the root cause event and the incident relate in time.
  7. Go deeper: where necessary, explore the individual causes as a tree in the detailed RCA report, or analyse the actual request flow on the distributed tracing tab.
  8. Move to the application details: click an application link to analyse its metrics, logs and distributed traces further.

The Alerts menu

The Alerts menu sits immediately below Incidents in the left sidebar. Where an incident is the higher-level event raised automatically by an SLO breach or anomaly detection, an alert is the notification raised when an individual inspection item or a user-defined alerting rule fires. On the Alerts screen you can look at the alerts that fired, resolve or pause them, and manage the rules that raise them.

The alert list screen

The screen is split by the tabs at the top into Alerts and Alerting rules.

The Alerts tab

Shows firing and resolved alerts as a table.

  • Status summary counters: firing counts by severity (critical, warning) at the top left; click one to filter to that severity.
  • Show resolved alerts: only firing alerts are shown by default; turn the toggle on to include resolved ones.
  • Security alerts only: filters to alerts raised by security attack detection.
  • Application filters: use the category and namespace filters at the top right to look at one group of applications only.

The list table has the following columns.

ColumnDescription
Alert messageThe alert summary and its ID (a-...). The icon before it gives the state — firing (mdi-bell-alert), resolved (✓ mdi-check-circle), paused (mdi-bell-off)
ApplicationThe application the alert fired on. Click it to open the application details
NamespaceThe namespace the application belongs to
KindThe workload kind (Deployment, DaemonSet, StatefulSet and so on)
Edit ruleThe edit icon for the rule that raised this alert. Click it to go to the rule editor
Fired atWhen the alert first fired, and how long ago
DurationHow long it has been firing, and its current state (firing / resolved)
SeverityWARNING or CRITICAL

Select several alerts with the checkboxes and a bulk action bar appears at the top, letting you resolve, pause or reopen them all at once.

Alert details

Click an alert row to open its detail dialog.

The alert detail dialog
  • Header: the severity badge and the current state (firing / resolved / paused)
  • Tags: alert ID, application, namespace, workload kind, alerting rule name
  • Alert message: a human-readable summary of the firing condition
  • Where it fired: the application the alert is attached to (click the link for the application details)
  • Timing: fired at, duration, data source (for example Logs, SLO)
  • Action buttons: Resolve (resolve manually), Pause (suppress the alert for a set time), Resend alert (resend a currently firing alert to external channels such as Slack and Teams, and as an on-screen toast)

The Alerting rules tab

Click Alerting rules in the tabs at the top to see the rules that raise alerts.

The alerting rules screen
  • The count of enabled and disabled rules appears at the top; the button at the top right adds a new rule, and the export icon exports the rules as JSON.
  • The icon before a rule name distinguishes three kinds.
    • Lock (mdi-lock) — a config-managed rule, deployed through a configuration file and not editable or deletable from the screen.
    • Shield (mdi-shield-check) — a built-in rule, created automatically by the system at first installation. It can be edited and deleted just like a user-defined rule (the difference being that its name is shown translated).
    • Bell (mdi-bell-ring) — a user-defined rule, fully editable and deletable.
ColumnDescription
Rule nameThe rule's name (shown in Slack and Teams messages). Built-in rules are shown translated
Data sourceThe kind of source the rule evaluates (inspection item, log pattern, PromQL, Kubernetes event and so on)
SeverityWarning or critical
SelectorWhat the rule applies to (all applications / by category / individually chosen)
Currently firingHow many alerts are firing from this rule (click to filter to them)
StateThe rule's enabled/disabled toggle

At first installation the system creates about forty built-in rules automatically, covering SLOs, CPU, memory, storage, network, instances, databases, runtimes, DNS and logs. Built-in rule thresholds can be overridden at project level under Settings > Inspection conditions.

Configuring an alerting rule

Click the button (or edit a user-defined rule) to open the rule configuration dialog.

The alerting rule dialog
SettingDescription
Rule nameThe identifying name shown in alert messages (for example Order service response delay)
Data sourceThe source the rule evaluates — inspection item (the state of a built-in inspection), log pattern (aggregated errors and warnings in logs), PromQL (a metric query expression), Kubernetes event (aggregated events such as FailedScheduling), attacking IP (security detection), resource forecast (predicted resource exhaustion)
SeverityWarning (needs attention) or critical (needs an immediate response)
Application selectionAll applications / a particular category / individual apps (glob patterns)
TimingThe pending period and the resolve grace period (see below)
EnabledWhether the rule is active

Timing: the pending period and the resolve grace period

Two timing settings that prevent unnecessary alerts (alert fatigue) and flapping.

  • Pending period (For): how long the condition must hold continuously before an alert fires. If the condition clears while pending, the wait is cancelled. This filters out false alerts from momentary spikes. Set it to 0 and the alert fires the instant the condition is detected.
  • Resolve grace period (KeepFiringFor): how long the alert is held open after the condition clears. If the condition is met again during the grace period, the alert stays open. This prevents the flapping you get when a condition clears and returns repeatedly.
PendingGraceBehaviour
0 s0 sFires immediately, resolves immediately (sensitive)
300 s0 sFires after 5 minutes of the condition, resolves as soon as it clears
0 s300 sFires immediately, stays open for 5 minutes after clearing
300 s300 sFires after 5 minutes of the condition, stays open for 5 minutes after clearing (stable)

Connecting alert channels

To send firing alerts to external channels such as Slack, MS Teams and webhooks, configure the channel under Settings > Alert channels. For each channel you can choose whether it receives incidents, deployments and alerts, and the alert language (Korean or English). For details, see Settings — alert channels.