Incidents & Health
Relevant source files
The following files were used as context for generating this wiki page:
- datahub-web-react/src/app/entity/shared/tabs/Incident/components/IncidentListItem.tsx
- datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentView.tsx
- datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentEditor.tsx
- smoke-test/tests/cypress/cypress/e2e/incidentsV2/v2_incidents.js
- e2e-test/ui/playwright/tests/incidents-v2/v2-incidents.spec.ts
- docs-website/static/llms.txt
The Incidents & Health system in DataHub provides a centralized framework for tracking, managing, and resolving data quality issues and operational anomalies. It allows users and automated systems to "raise" incidents against specific data assets (datasets, dashboards, etc.), assign owners, and track the journey from investigation to resolution.
This system serves as a bridge between automated data observability (such as assertions) and manual human intervention. By providing a unified view of an asset's health, it enables data producers and consumers to maintain trust in the data ecosystem. Sources: docs-website/static/llms.txt:58, datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentView.tsx:168-180
Core Components and Architecture
The Incident system is structured around the Incident entity, which encapsulates the state and history of a specific issue.
Data Model and States
An incident is characterized by its type, priority, and current state. It is linked to one or more "resource URNs" (the assets affected).
| Attribute | Description | Values / Examples |
|---|---|---|
| State | The high-level lifecycle status. | Active, Resolved |
| Stage | The operational progress of the incident. | Investigation, In Progress, Fixed, No Action Required |
| Priority | The urgency or impact of the incident. | Critical, High, Medium, Low |
| Type | The category of the issue. | Freshness, Volume, Custom, Assertion Failure |
Sources: datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentEditor.tsx:32-38, smoke-test/tests/cypress/cypress/e2e/incidentsV2/v2_incidents.js:2-10
Incident Lifecycle Flow
The following diagram illustrates the typical lifecycle of an incident within the UI, from creation through status updates to resolution.
This flow represents the transitions between active management and final resolution, including the ability to add resolution notes when closing an incident. Sources: datahub-web-react/src/app/entity/shared/tabs/Incident/components/IncidentListItem.tsx:156-165, datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentEditor.tsx:75-85
Incident Management (UI Layer)
Incident Editor
The IncidentEditor component handles both the creation and modification of incidents. It utilizes a StyledForm to capture metadata such as:
- Title and Description: Using a standard input and a specialized
Editorcomponent for markdown support. - Assignees: Managed via the
IncidentAssigneeSelector, allowing multiple users to be linked to the incident. - Linked Assets: Managed via
IncidentLinkedAssetsList, which defaults to the current entity but allows expansion to siblings.
Sources: datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentEditor.tsx:130-190
Incident View and Activity Tracking
The IncidentView provides a read-only summary of the incident's current state and history. It includes an IncidentActivitySection that tracks:
- RAISED: When the incident was originally created and by whom.
- RESOLVED: When the incident was closed, including the resolver and the resolution message.
Automated Health via Assertions
Incidents can be automatically raised by the system when an Assertion (data quality check) fails. In these cases:
- The
IncidentSourceTypeis set toAssertionFailure. - The
IncidentViewdisplays the specific assertion logic that triggered the failure. - A link is provided to navigate directly to the failed assertion's profile.
Sources: datahub-web-react/src/app/entityV2/shared/tabs/Incident/AcrylComponents/IncidentView.tsx:168-180
Testing and Verification
The incident system is verified through comprehensive E2E tests using Cypress and Playwright. Key test scenarios include:
- Creation: Creating an incident with all fields (Priority, Stage, Type) and verifying its appearance in the list.
- Resolution: Updating an active incident to 'Resolved' and verifying the status transition.
- Sibling Management: Handling incidents across sibling datasets when
separate_siblingsis toggled.
Sources: smoke-test/tests/cypress/cypress/e2e/incidentsV2/v2_incidents.js:46-75, e2e-test/ui/playwright/tests/incidents-v2/v2-incidents.spec.ts:80-110
Summary
The "Incidents & Health" module provides a critical operational layer for DataHub. It transforms passive metadata observations into active workflows by allowing teams to categorize, prioritize, and resolve data issues. Through integration with Assertions and support for multi-asset linking, it ensures that data health is transparent and actionable across the organization.