Automatic Incident Grouping

When a data quality monitor fails, our platform works to minimize alert fatigue and help you focus on the root cause of a data problem. Instead of creating a new, isolated incident for every single failure, the system analyzes your Dataset Lineage and existing open incidents. If a relevant incident is found, the new failure is grouped into it.

This page explains the logic behind this powerful feature.

How It Works

When a monitor in Sifflet fails (the "New Failure"), Sifflet performs a multi-step analysis to determine if it should be grouped with an existing issue or if a new incident should be created.

  1. Look for Recent Incidents: Sifflet searches the most recent open incidents that have had a new failure within the last 7 days.
  2. Analyze Relationships: It then analyzes the new monitor failure to see if it's related to any of these recent incidents based on two key factors:
    • Semantic Match: It checks if the monitor template of the active incident is a compatible match for the monitor template of the new failure, based on their positional relationship (see Grouping Rules below). Not all failures in a lineage are related; for example, a Freshness delay often causes a Volume issue, but a Schema Change is likely unrelated to an Email Format error.
    • Data Lineage: Whether the monitors are on the same asset, or on assets connected via upstream, downstream, or sibling lineage, within a maximum lineage depth of 3 hops.
  3. AI Validation (Relevance Check): Sifflet uses an AI model to validate the potential connection, analyzing the context of both the new failure and the existing incident to confirm if they are truly related.
  4. Group or Create:
    • If a strong relationship is found, the new monitor failure is added to the existing incident.
    • If no related incident is found, a new incident is created.
Grouped failing monitors within the incident page.

Grouped failing monitors within the incident page.

Grouping Rules

Sifflet uses the following logic to determine if monitor failures are related. Grouping is heavily dependent on the monitor template of the new failure and its positional relationship to the monitors already on the existing incident:

  • Same Asset — the new failure is on the exact same asset as an existing incident's monitor.
  • Upstream Asset — what upstream failures could have caused this incident? Infrastructure failures (Volume, Freshness) are valid causes of almost any downstream failure. For SQL, only infrastructure upstream applies — a business rule failing upstream doesn't cause your business rule to fail.
  • Downstream Asset — what downstream failures are likely effects of this incident? This is more conservative than upstream: business and format monitors downstream are almost always independent.
  • Sibling Asset — what sibling failures are likely co-symptoms of the same root cause? Two assets are considered siblings if they share a parent asset of the same type (Dataset), or if they are both root assets (i.e. neither has a parent asset). Infrastructure monitor types have the strongest sibling correlation; format validators and business logic monitors have near-zero sibling correlation.

A new monitor failure is grouped into an existing incident only if the existing incident contains a monitor of one of the compatible templates listed for the corresponding relationship (same asset, upstream, downstream, or sibling), within a maximum lineage depth of 3 hops.

Monitor TemplateSame AssetUpstream AssetDownstream AssetSibling Asset
VolumeRow Duplicate, Freshness, Freshness (Update Timestamp), Duplicates, Unique, Referential IntegrityVolume, Freshness, Freshness (Update Timestamp), Row DuplicateVolume, Freshness, Freshness (Update Timestamp), Row DuplicateVolume, Freshness, Freshness (Update Timestamp)
Row DuplicateVolume, Metric, Custom Metrics, Correlated Metrics, Duplicates, Row Duplicates, UniqueVolume, Row Duplicate, DuplicatesRow Duplicate, Duplicates, UniqueRow Duplicate, Duplicates
FreshnessVolume, Freshness, Freshness (Update Timestamp)Volume, Freshness, Freshness (Update Timestamp)Freshness, Freshness (Update Timestamp), VolumeVolume, Freshness, Freshness (Update Timestamp)
Freshness (Update Timestamp)Volume, Freshness, Freshness (Update Timestamp)Volume, Freshness, Freshness (Update Timestamp)Freshness, Freshness (Update Timestamp), VolumeVolume, Freshness, Freshness (Update Timestamp)
Schema ChangesDuplicates, Unique, Nulls, Referential IntegritySchema ChangesSchema Changes, Nulls, Referential Integrity
MetricVolume, Row Duplicate, Freshness, Freshness (Update Timestamp), Metric, Custom Metrics, Correlated Metrics, Distribution Changes, Nulls, Value Range, SQL, Conditional MonitoringVolume, Freshness, Freshness (Update Timestamp), Metric, Correlated MetricsMetric, Correlated Metrics, Distribution Changes, Custom MetricsMetric
Custom MetricsVolume, Row Duplicate, Freshness, Freshness (Update Timestamp), Metric, Custom Metrics, Correlated Metrics, Distribution Changes, Nulls, Value Range, SQL, Conditional MonitoringVolume, Freshness, Freshness (Update Timestamp), Metric, Custom Metrics, Correlated MetricsMetric, Custom Metrics, Correlated Metrics, Distribution Changes
Correlated MetricsVolume, Row Duplicate, Freshness, Freshness (Update Timestamp), Metric, Custom Metrics, Correlated Metrics, Distribution Changes, Nulls, Value Range, SQL, Conditional MonitoringVolume, Freshness, Freshness (Update Timestamp), Metric, Custom Metrics, Correlated MetricsMetric, Custom Metrics, Correlated Metrics, Distribution Changes
Distribution ChangesVolume, Row Duplicate, Freshness, Freshness (Update Timestamp), Metric, Custom Metrics, Correlated Metrics, Distribution Changes, Nulls, Value Range, SQL, Conditional MonitoringVolume, Distribution ChangesDistribution Changes, Metric, Custom Metrics, Correlated MetricsDistribution Changes
DuplicatesVolume, Metric, Custom Metrics, Correlated Metrics, Duplicates, Row Duplicates, UniqueVolume, Row Duplicate, Duplicates, UniqueDuplicates, Unique, Row DuplicateDuplicates, Row Duplicate, Unique
UniqueVolume, Metric, Custom Metrics, Correlated Metrics, Duplicates, Row Duplicates, UniqueVolume, Row Duplicate, Duplicates, UniqueDuplicates, Unique, Row DuplicateDuplicates, Unique, Row Duplicate
NullsNulls, Schema Changes, Metric, Custom Metrics, Correlated Metrics, Distribution Changes, Referential Integrity, SQL, Conditional MonitoringSchema Changes, Nulls, Referential IntegrityNulls, Schema Changes, Referential IntegrityNulls
Value List ValidationValue List Validation, Distribution Changes, Matches Regex, SQL, Conditional MonitoringValue List ValidationValue List Validation, Distribution ChangesValue List Validation
Value RangeValue Range, Distribution Changes, Metric, Custom Metrics, Correlated Metrics, SQL, Conditional MonitoringVolume, Freshness, Value Range, Distribution ChangesValue Range, Distribution Changes, MetricValue Range, Distribution Changes
Referential IntegrityVolume, Schema Changes, Duplicates, Unique, Nulls, SQL, Conditional MonitoringVolume, Schema Changes, Referential Integrity, NullsReferential Integrity, NullsReferential Integrity
Is an EmailIs an Email, Matches Regex, SQL, Conditional MonitoringIs an Email, Matches RegexIs an EmailIs an Email
Is a Phone NumberIs a Phone Number, Matches Regex, SQL, Conditional MonitoringIs a Phone Number, Matches RegexIs a Phone NumberIs a Phone Number
UUIDUUID, Matches Regex, SQL, Conditional MonitoringUUID, Matches RegexUUIDUUID
Matches RegexValue List Validation, Is an Email, Is a Phone Number, UUID, SQL, Conditional MonitoringIs an Email, Is a Phone Number, UUID, Matches Regex, Value List ValidationMatches RegexMatches Regex
SQLAll templates (SQL is a custom catch-all for business-specific logic)Volume, Freshness, Freshness (Update Timestamp)SQL

AI-Generated Incident Descriptions

When incidents are automatically grouped or a new monitor is linked to an existing incident, Sifflet uses AI to generate a clear, human-readable description of the incident. This description summarizes the failures and provides context, helping you quickly understand the issue.


Did this page help you?