Try it free

Health indicators

  • Latest Dynatrace
  • Reference
  • 5-min read
  • Published Jul 13, 2026
Health alert chips in the Entity Details header grouping Davis events by alert category
Health alert chips in the Entity Details header grouping Davis events by alert category

Health indicators connect Davis events to your app's UI, giving users a consistent health view wherever entity data is shown. Active alerts surface as colored chips in the entity header and entity lists, as event markers on charts, and as rows in the Alerts table. Chips always show current health, even when browsing a past timeframe. Each chip opens an overlay with the matched events and actions to navigate to the affected metric, investigate the underlying problem, or edit the alert configuration.

Configuration

Health indicators may be configured in two places:

  • DQL Table — add alertGroups on the table to match events to named alerts, add the ALERTS_LOOKUP built-in lookup with lookupField pointing to your entity ID column, and include the HEALTH_ALERTS_COLUMN and CUSTOM_ALERTS_COLUMN built-in columns. See DQL Table and AlertLookupRelation below.

  • Entity Details — add alertGroups to DetailsComposition and set alertQueryParams to control how events are fetched for the entity header. See Entity Details composition.

Examples

DQL Table

A minimal table showing health alerts and custom alerts as dedicated columns. The ALERTS_LOOKUP fetches Davis events and joins them to rows via lookupField (your entity ID column). alertGroups defines which events map to named chips; any unmatched events become custom alerts automatically. Include both HEALTH_ALERTS_COLUMN and CUSTOM_ALERTS_COLUMN — the second catches events that don't match any configured group, which may still be actionable.

groupName is the chip label visible in entity lists and the entity header; displayName is the label shown per event inside the chip overlay. In matchConditions, values are matched against event attributes — use ["*"] to match any value for an attribute, or list specific strings such as built-in Davis event type names.

{
"type": "dql-table",
"id": "services",
"title": "Services",
"alertGroups": [
{
"groupName": "Failure rate",
"alerts": [
{
"displayName": "Failure rate",
"matchConditions": { "event.type": ["SERVICE_ERROR_RATE_INCREASED"] }
}
]
},
{
"groupName": "Response time",
"alerts": [
{
"displayName": "Response time",
"matchConditions": { "event.type": ["SERVICE_SLOWDOWN"] }
}
]
}
],
"dqlQuery": {
"query": "smartscapeNodes \"*\" | filter type == \"SERVICE\" | fields id, name",
"idField": "id",
"lookups": [
{
"builtInLookup": "ALERTS_LOOKUP",
"lookupField": "id"
}
]
},
"columns": [
{ "id": "name", "field": "entity.name", "displayName": "Service" },
{ "builtInColumn": "HEALTH_ALERTS_COLUMN" },
{ "builtInColumn": "CUSTOM_ALERTS_COLUMN" }
]
}

Entity Details

alertQueryParams scopes the event query to the right entity type; it is optional, but omitting it returns events for all Smartscape nodes — always include it with $(entityId) to scope alerts to the current entity. filters accepts DQL filter expressions (without the leading | filter). alertGroups works the same as in the DQL Table — unmatched events become custom alerts. Use charts on an alert to link it to a chart card so the View metric action navigates there directly.

In filters, replace the entity type string (for example, "SERVICE") with your entity's Smartscape type — the same value used in filter type == "..." in DQL. $(entityId) resolves to the ID of the entity currently open in the details panel. See DQL variables for the full list of available variables.

{
"type": "details",
"id": "service-details",
"alertGroups": [
{
"groupName": "Failure rate",
"alerts": [
{
"displayName": "Failure rate",
"matchConditions": { "event.type": ["SERVICE_ERROR_RATE_INCREASED"] },
"charts": ["golden-signals"]
}
]
},
{
"groupName": "Response time",
"alerts": [
{
"displayName": "Response time",
"matchConditions": { "event.type": ["SERVICE_SLOWDOWN"] },
"charts": ["golden-signals"]
}
]
}
],
"alertQueryParams": {
"filters": ["iAny(smartscape.affected_entities[][type] == \"SERVICE\") AND iAny(smartscape.affected_entities[][id] == $(entityId))"]
},
"content": {
"type": "tabs",
"items": []
}
}

Health indicators are configured via alertGroups on DetailsComposition (see Entity Details composition), DqlTable (see DQL Table), and ChartGroup (see Chart Group). The reference types are described below.

HealthAlertGroup

Supports the Conditional mixin (see Conditional rendering).

PropertyTypeDescription

groupName

string

Display name of the health indicator chip.

alerts

HealthAlert[]

Alerts belonging to this group.

hideFromAlertGroup

boolean (optional)

When true, the group doesn't appear as an alert in the detail view.

conditions

Condition[] (optional)

Group is hidden when conditions aren't satisfied.

HealthAlert

Supports the Conditional mixin.

PropertyTypeDescription

matchConditions

HealthAlertConditions

Event attribute conditions that must match for the alert to fire.

displayName

string

Alert display name.

excludeConditions

HealthAlertConditions (optional)

Conditions that, if matched, exclude this alert.

charts

string[] (optional)

Chart IDs this alert is associated with.

chartConfiguration

ChartConfiguration (optional)

How the alert appears on associated charts.

conditions

Condition[] (optional)

Alert is hidden when conditions aren't satisfied.

HealthAlertConditions

Record<string, string[] | ['*']> — a map from event attribute name to a list of allowed values. Use ['*'] to match any value for a given attribute.

ChartConfiguration

PropertyTypeDescription

showAsEventMarker

boolean (optional)

Renders the alert as an event marker on the chart timeline.

color

string (optional)

Marker/series color override.

AlertQueryParams

Parameters for the standalone health-indicators query (used by DetailsComposition.alertQueryParams).

PropertyTypeDescription

filters

string[] (optional)

DQL filter expressions (without the leading | filter).

additionalFields

string[] (optional)

Extra fields included in the health indicator record.

problemFilterExpression

string (optional)

Pre-filter for Davis problems.

volatileFilterExpression

string (optional)

Pre-filter for volatile attributes like related_entity_types.

healthIndicatorEntityIdOverride

string (optional)

Overrides entity.id in the health indicator record.

expandFields

string[] (optional)

Additional fields to expand.

AlertLookupRelation

Used inside the AlertLookup built-in lookup's relations array (see DQL Table).

PropertyTypeDescription

fieldPrefix

string

Field prefix for the relation's output fields.

dqlCondition

string

Filter expression identifying events for this relation.

type

'count' | 'alert' | 'entity-remap' (optional, default 'count')

'count' adds health counts as separate fields; 'alert' adds health indicators/custom alerts to existing fields; 'entity-remap' remaps entity IDs via entityIdRemapField so matching events flow into the main health fields.

alertGroups

HealthAlertGroup[] (optional)

Distinguishes configured alerts from custom alerts within this relation.

entityIdRemapField

string (optional)

Only for type: 'entity-remap' — array field on the event holding target parent entity IDs (for example, smartscape.related_entity.ids).

When type: 'entity-remap', the lookup also produces a generated {fieldPrefix}.original_id output field (the pre-remap entity ID, or null for non-matching rows) — expose it via additionalFields if you need it.

See also

  • DQL Table
  • Chart Group
  • Entity Details composition
Related tags
ExtensionsExtensionsInfrastructure Observability