Try it free

Chart Group

  • Latest Dynatrace
  • Reference
  • 10-min read
  • Published Jul 13, 2026

type: 'chart-group'

Chart group card showing multiple charts in a grid layout inside an Entity Details page
Chart group card showing multiple charts in a grid layout inside an Entity Details page

A card consisting of charts aligned in a grid driven by DQL queries, optionally organized into collapsible sections.

Placement — a chart group is a leaf card, valid inside an Entity Details tab and any layout that accepts a card. See Elements overview.

DQL for chart cards — timeseries and metrics queries reference the entity with $(meId) (classic entity ID, for example, HOST-abc123). smartscapeNodes queries use $(nodeId) paired with toSmartscapeId($(nodeId)) to build the Smartscape ID filter. See DQL variables for the full placeholder list.

Fields

In addition to the shared CoreElement fields (see Elements overview):

PropertyTypeDescription

charts

Chart[]

All chart definitions. Each chart optionally declares a sectionId to be grouped. Charts without a sectionId are rendered in a flat grid below any accordion sections.

sections

ChartGroupSection[] (optional)

Ordered accordion sections. When omitted, all charts render in a flat grid.

mode

'NORMAL' | 'COMPACT' (optional, default 'NORMAL')

'COMPACT' renders only SINGLE_VALUE charts at reduced height with no headers, axes, or legends — for KPI-style overview panels. Charts of other types in the same card are hidden.

searchEnabled

boolean (optional, default false)

Adds a search field above the sections to filter charts by display name.

expandedSectionIds

string[] (optional)

Controlled list of expanded section IDs. When set, defaultExpanded on individual sections is ignored.

defaultVisibleChartsNumber

number (optional)

Number of charts shown before a "Show more" control appears. When omitted, all charts are visible.

swapChartsEnabled

boolean (optional, default true)

When true, charts beyond the visible slot count are accessible via a swap dropdown in each chart header.

colorPalette

ColorPalette | CustomColorPalette (optional)

Default color palette for all charts. Individual charts can override this via visualization.globalProperties.colorPalette.

alertGroups

HealthAlertGroup[] (optional)

Health indicator configuration. See Health indicators.

When defaultVisibleChartsNumber is set and swapChartsEnabled is true, charts beyond the visible slot count appear in a swap dropdown in each visible chart header rather than being hidden. Section-level overrides of both properties can mix these behaviors within the same card.

ChartGroupSection

PropertyTypeDescription

id

string

Unique section ID, referenced by a chart's sectionId.

title

string

Accordion header title.

defaultExpanded

boolean (optional)

Whether the section starts expanded. Defaults to true for the first section, false for the rest. Ignored when expandedSectionIds is set on the chart group.

defaultVisibleChartsNumber

number (optional)

Section-level override of the chart group's defaultVisibleChartsNumber.

swapChartsEnabled

boolean (optional)

Section-level override of the chart group's swapChartsEnabled.

colorPalette

ColorPalette | CustomColorPalette (optional)

Section-level palette override.

conditions

Condition[] (optional)

See Conditional rendering.

Chart

PropertyTypeDescription

id

string (required)

Unique chart ID within the chart group. Referenced by HealthAlert.charts to link alert events as markers on this chart.

displayName

string (required)

Label shown in the chart header and the charts swap dropdown.

sectionId

string | string[] (optional)

Section ID(s) this chart belongs to. An array places the same chart in multiple sections.

dqlQuery

string (required)

DQL query that fetches chart data. For timeseries charts, typically starts with timeseries. Supports DQL variables and the $(aggregation) placeholder when aggregationTypes is set on the visualization.

intentDqlQuery

string (optional)

Alternative DQL query used when navigating to this chart via an intent. Defaults to dqlQuery.

visualization

ChartVisualization (required)

Visualization type and its configuration — see Chart visualization types.

helpMessage

string (optional)

Tooltip text shown via an info badge in the chart header.

applySegments

boolean (optional, default false)

When true, composition-level segment filters are applied to this chart's query.

actions

ChartActions (optional)

Per-chart header actions.

emptyState

ChartEmptyState (optional)

Custom content shown when the query returns no data.

errorState

ChartEmptyState (optional)

Custom content shown when the query fails.

conditions

Condition[] (optional)

An array of conditions that must be fulfilled to display the chart. If not provided, the chart is always visible. See Conditional rendering.

ChartEmptyState — header: string, body: string. Used by Chart.emptyState and Chart.errorState.

Chart visualization types

visualization is a discriminated union on type. Each variant is documented in its own section below.

type valueVisualizationDescription

'TIMESERIES_CHART'

ChartTimeseriesChartVisualization

Time-series line/area/bar chart.

'SINGLE_VALUE'

ChartSingleValueVisualization

Single metric value with optional sparkline/trend.

'CATEGORICAL_CHART'

ChartCategoricalChartVisualization

Categorical bar chart.

'PIE_CHART'

ChartPieChartVisualization

Pie chart.

'DONUT_CHART'

ChartDonutChartVisualization

Donut chart.

'METER_BAR_CHART'

ChartMeterBarChartVisualization

Single meter bar.

'MULTI_METER_BAR_CHART'

ChartMultiMeterBarChartVisualization

Multi-series meter bar.

Shared visualization types

DQL output → series/slices — for pie, donut, multi-meter-bar, and categorical charts, each returned field (multi-field queries like { used = ..., free = ... }) or each distinct by:{} dimension value becomes one series/slice. The series identifier — which seriesOverrides[].name and CustomColorPalette object keys must match — is the field alias (for example, 'used') for multi-field queries, or the dimension value (for example, 'Linux') for by:{os.type} queries.

ChartGlobalProperties — visualization-wide settings, available on every chart type via globalProperties:

PropertyTypeDescription

hideLegend

boolean (optional)

Hides the chart legend.

colorPalette

ColorPalette | CustomColorPalette (optional)

Palette for this chart, overriding the section- and chart-group-level defaults.

ChartAxes — used by ChartTimeseriesChartVisualization.axesSettings:

PropertyTypeDescription

xAxis

{ label?: string } (optional)

X-axis label. min/max aren't configurable — they're computed from the active timeframe.

yAxes

{ label?: string; position?: 'left' | 'right'; min?: number; max?: number }[] (optional)

Y-axis definitions; multiple entries enable dual left/right axes.

ChartSeriesOverride — per-series/dimension styling override, used by timeseries metrics, categorical, pie, donut, and multi-meter-bar visualizations:

PropertyTypeDescription

name

string

Dimension/series value to match against.

displayName

string (optional)

Display name override for the matched series.

color

string (optional)

Color override — a Strato color token path, resolved CSS variable, or hex/rgb value.

Timeseries chart showing metric data over time with a legend and threshold bands
Timeseries chart showing metric data over time with a legend and threshold bands
Stacked area chart showing multiple metric series accumulated over a time range
Stacked area chart showing multiple metric series accumulated over a time range

ChartTimeseriesChartVisualization ('TIMESERIES_CHART')

PropertyTypeDescription

variant

'line' | 'area' | 'bar' (optional, default 'line')

Chart rendering variant.

axesSettings

ChartAxes (optional)

Axis labels and Y-axis definitions.

metrics

Record<string, ChartTimeseriesMetricVisualization> (optional)

Per-metric settings, keyed by the DQL response field/alias (for example, 'cpu' for timeseries { cpu = avg(dt.host.cpu.usage) }).

hideMetricNameInLegend

boolean (optional, default false)

Shows only dimension values in the legend, hiding metric names.

globalProperties

ChartGlobalProperties (optional)

See Shared visualization types above.

aggregationTypes

('AVG' | 'SUM' | 'MIN' | 'MAX' | 'COUNT' | 'MEDIAN' | 'VALUE' | 'SUM_ROLLUP_AVG')[] (optional)

Aggregation options shown in a header dropdown, for use with a $(aggregation) placeholder in dqlQuery.

defaultAggregationType

one of the values above (optional)

Aggregation selected by default; ignored when aggregationTypes is omitted.

chartProps

object (optional)

Additional props forwarded to the underlying Strato TimeseriesChart component. Managed props (data, variant, colorPalette, gapPolicy) are excluded.

ChartTimeseriesMetricVisualization (one entry per key in metrics):

PropertyTypeDescription

seriesType

'line' | 'area' | 'bar' (optional)

Overrides the chart-level variant for this metric's series.

seriesOverrides

ChartSeriesOverride[] (optional)

Per-dimension styling for this metric's series.

forecastSettings

ChartForecastSettings (optional)

Davis AI forecast configuration (timeseries only).

connectGaps

boolean (optional, default true)

Connects gaps in the data with a line instead of leaving empty space.

flatLineMinMaxSettings

ChartFlatLineMinMaxSettings (optional)

Custom Y-axis min/max applied when every data point is 0.

inputUnit

string (optional)

Unit the DQL query returns, used for automatic conversion (for example, 'units.time.millisecond').

overrideUnit

string (optional)

Forces a specific display unit regardless of auto-detection. Unit tokens follow the path pattern 'units.<category>.<unit>'.

alias

string (optional)

Display alias for this metric in legend/tooltip.

color

string (optional)

Default color for all of this metric's series.

ChartForecastSettings:

PropertyTypeDescription

showForecast

boolean

Enables the Davis AI forecast band.

analyzerName

string (optional, default 'dt.statistics.GenericForecastAnalyzer')

Forecast analyzer to use.

forecastHorizon

number (optional, default 10, range 1–600)

Number of datapoints to forecast into the future.

ChartFlatLineMinMaxSettings:

PropertyTypeDescription

disableCustomMinMaxOnFlatLine

boolean (optional)

Disables the custom min/max override for all-zero data.

flatLineCustomMin

number (optional, default 0)

Y-axis min applied when all data points are 0.

flatLineCustomMax

number (optional, default 100)

Y-axis max applied when all data points are 0.

Single value chart showing a key metric as a large number with a trend indicator
Single value chart showing a key metric as a large number with a trend indicator

ChartSingleValueVisualization ('SINGLE_VALUE')

PropertyTypeDescription

field

string (optional)

DQL response field to visualize. Required only when the query returns multiple value fields.

metric

ChartSingleValueMetricVisualization (optional)

Visualization settings for the selected metric.

globalProperties

ChartGlobalProperties (optional)

See Shared visualization types above.

aggregationTypes

array (optional)

Same shape as timeseries — see above.

defaultAggregationType

value (optional)

Same shape as timeseries — see above.

ChartSingleValueMetricVisualization:

PropertyTypeDescription

singleValueSettings

ChartSingleValueSettings (optional)

Sparkline/trend/value display configuration.

foldTransformation

'AUTO' | 'AVG' | 'LAST_VALUE' | 'MAX' | 'MEDIAN' | 'MIN' | 'PERCENTILE_10' | 'PERCENTILE_75' | 'PERCENTILE_90' | 'SUM' | 'VALUE' (optional)

How a multi-datapoint series is folded into the single displayed value.

inputUnit / overrideUnit

string (optional)

Source unit / display-unit override.

alias

string (optional)

Display alias.

color

string (optional)

Default color.

ChartSingleValueSettings:

PropertyTypeDescription

showSparkLine

boolean (optional)

Shows a sparkline alongside the value.

showTrend

boolean (optional)

Shows a trend indicator.

showTicks

boolean (optional)

Shows ticks on the sparkline.

color

string (optional)

Value color.

sparklineColor

string (optional)

Sparkline color.

maximumFractionDigits

number (optional, default 2)

Precision of the displayed value.

Categorical chart showing metric values grouped by dimension as horizontal bars
Categorical chart showing metric values grouped by dimension as horizontal bars
Stacked column chart showing metric values grouped and stacked by dimension
Stacked column chart showing metric values grouped and stacked by dimension

ChartCategoricalChartVisualization ('CATEGORICAL_CHART')

PropertyTypeDescription

settings

ChartCategoricalBarChartSettings (optional)

Layout, grouping, legend, and tooltip configuration.

seriesOverrides

ChartSeriesOverride[] (optional)

Per-bar/category styling.

inputUnit / overrideUnit

string (optional)

Source unit / display-unit override.

globalProperties

ChartGlobalProperties (optional)

See Shared visualization types above.

ChartCategoricalBarChartSettings:

PropertyTypeDescription

layout

'vertical' | 'horizontal' (optional)

Bar orientation.

groupMode

'grouped' | 'stacked' (optional, default stacked)

Whether bars per category are stacked or shown side by side. Has no effect with a single value per category.

valueRepresentation

'absolute' | 'relative' (optional)

Show raw values, or each dimension's proportion of its category's total.

legend

ChartCategoricalBarChartLegendSettings (optional)

Legend configuration.

tooltip

'grouped' | 'single' (optional, default 'single')

Show all categories in the tooltip, or only the hovered one.

truncationMode

'start' | 'middle' | 'end' (optional, default 'middle')

How overly long labels are truncated.

showDownloadButton

boolean (optional, default false)

Shows a CSV download button.

colorPalette

ColorPalette | CustomColorPalette (optional)

Palette override.

ChartCategoricalBarChartLegendSettings:

PropertyTypeDescription

hidden

boolean (optional)

Hides the legend. Shown by default.

position

'bottom' | 'right' | 'auto' (optional, default 'auto')

Legend placement.

ratio

number (optional, default 25, range 5–80)

Percentage of chart space the legend occupies.

Pie chart showing metric distribution across dimensions as proportional slices
Pie chart showing metric distribution across dimensions as proportional slices

ChartPieChartVisualization ('PIE_CHART')

PropertyTypeDescription

settings

ChartPieChartSettings (optional)

Pie-chart and legend prop overrides.

seriesOverrides

ChartSeriesOverride[] (optional)

Per-slice styling.

inputUnit / overrideUnit

string (optional)

Source unit / display-unit override.

globalProperties

ChartGlobalProperties (optional)

See Shared visualization types above.

ChartPieChartSettings:

PropertyTypeDescription

pieChartProps

object (optional)

Additional props forwarded to the underlying Strato PieChart component.

legendProps.position

'bottom' | 'right' | 'auto' (optional)

Legend placement.

legendProps.initialRatio

number (optional)

Percentage of space the legend occupies.

legendProps.valueType

'relative' | 'absolute' (optional)

Whether slice labels show a relative share or an absolute value.

Donut chart showing metric distribution with the aggregate total in the center
Donut chart showing metric distribution with the aggregate total in the center

ChartDonutChartVisualization ('DONUT_CHART')

PropertyTypeDescription

settings

ChartDonutChartSettings (optional)

Donut-chart overrides and inner-content configuration.

seriesOverrides

ChartSeriesOverride[] (optional)

Per-slice styling.

inputUnit / overrideUnit

string (optional)

Source unit / display-unit override.

globalProperties

ChartGlobalProperties (optional)

See Shared visualization types above.

ChartDonutChartSettings:

PropertyTypeDescription

donutChartProps

object (optional)

Additional props forwarded to the underlying Strato DonutChart component.

showTotalValue

boolean (optional)

Shows the aggregate total in the donut's inner content.

labelTotalValue

string (optional)

Label shown alongside the total value.

position

'bottom' | 'right' | 'auto' (optional)

Legend placement.

ratio

number (optional, default 25)

Percentage of space the legend occupies (width when right, height when bottom).

valueType

'relative' | 'absolute' (optional, default 'relative')

Whether slice labels show a relative share or an absolute value.

Meter bar chart showing a single metric as a filled horizontal bar with threshold zones
Meter bar chart showing a single metric as a filled horizontal bar with threshold zones

ChartMeterBarChartVisualization ('METER_BAR_CHART')

PropertyTypeDescription

field

string (optional)

DQL response field to visualize. Required only when the query returns multiple value fields.

metric

ChartMeterBarMetricVisualization (optional)

Visualization settings for the selected metric.

settings

ChartMeterBarChartSettings (optional)

Thresholds, sizing, and display configuration.

globalProperties

ChartGlobalProperties (optional)

See Shared visualization types above.

aggregationTypes

array (optional)

Same shape as timeseries — see above.

defaultAggregationType

value (optional)

Same shape as timeseries — see above.

ChartMeterBarMetricVisualization:

PropertyTypeDescription

foldTransformation

value (optional)

Same options as ChartSingleValueMetricVisualization.foldTransformation above.

inputUnit / overrideUnit

string (optional)

Source unit / display-unit override.

alias

string (optional)

Display alias.

color

string (optional)

Default color.

ChartMeterBarChartSettings:

PropertyTypeDescription

thresholds

ChartMeterBarChartThreshold[] (optional)

Threshold markers.

showThresholdLegend

boolean (optional)

Shows a legend listing all thresholds.

showTooltip

boolean (optional)

Shows a tooltip on hover.

color

string (optional)

Overrides all other color and theme settings.

min / max

number (optional)

Meter bar scale bounds.

displayValue

string | boolean (optional)

true shows the fractional value; a string shows custom text.

barSize

'size8' | 'size16' | 'size24' | 'auto' (optional)

Bar height. Defaults to 'size8' in compact chart groups, 'auto' otherwise.

showLabel

boolean (optional, default true)

Shows the chart's displayName as a label.

colorPalette

ColorPalette | CustomColorPalette (optional)

Palette override.

ChartMeterBarChartThreshold:

PropertyTypeDescription

name

string

Threshold label (for example, 'good', 'critical').

value

number

Threshold value.

showIndicator

boolean (optional)

Shows a marker at this threshold.

color

string (optional)

Bar color once this threshold is reached.

Multi meter bar chart showing multiple metrics as parallel filled bars
Multi meter bar chart showing multiple metrics as parallel filled bars

ChartMultiMeterBarChartVisualization ('MULTI_METER_BAR_CHART')

PropertyTypeDescription

settings

ChartMultiMeterBarChartSettings (optional)

Legend, tooltip, sizing, and display configuration.

seriesOverrides

ChartSeriesOverride[] (optional)

Per-segment styling.

inputUnit / overrideUnit

string (optional)

Source unit / display-unit override.

globalProperties

ChartGlobalProperties (optional)

See Shared visualization types above.

ChartMultiMeterBarChartSettings:

PropertyTypeDescription

showLegend

boolean (optional)

Shows a legend for the segments.

tooltip

'single' | 'hidden' | 'shared' (optional)

'shared' shows all segments in the tooltip; 'single' shows only the hovered one.

min / max

number (optional)

Meter bar scale bounds.

displayValue

string | boolean (optional)

true shows the fractional value; a string shows custom text.

barSize

'size8' | 'size16' | 'size24' | 'auto' (optional)

Bar height.

showLabel

boolean (optional, default true)

Shows the chart's displayName as a label.

colorPalette

ColorPalette | CustomColorPalette (optional)

Palette override.

Color palettes

ColorPalette — string literal naming a built-in palette. There are 70+ values; a representative selection: 'categorical', 'categorical-inverted', 'purple-rain', 'rainbow', 'threshold', 'threshold-inverted', 'status', 'status-inverted', 'apdex', 'log-level', 'blue', 'fireplace', 'swamps', 'red-green', 'red-blue', 'orange-blue'.

CustomColorPalette — Record<string, string> | string[] — two forms:

  • Object: maps series names (field aliases or by:{} dimension values) to colors — { "used": "#ff5733", "free": "#33ff57" }.
  • Array: maps by position — first color → first series, second → second, following the order series appear in the DQL result — ["#ff5733", "#33ff57"].

For color values (color fields throughout), prefer Strato design token CSS variables over raw hex. Use the full CSS var() expression — for example, 'var(--dt-colors-charts-categorical-1-default,)' (note the trailing comma, which is required). Token names follow the --dt-colors-* convention and are available in the @dynatrace/strato-design-tokens package.

Action unions

Action arrays accept both BuiltInAction<T> references and full IntentAction objects.

TypeUsed inBuilt-in literals

ChartActions

Chart.actions

'EXPAND', 'EDIT_IN_NOTEBOOK', 'PIN_TO_DASHBOARD', 'CREATE_ALERT', 'OPEN_WITH'

Built-in ChartActions literals — 'EXPAND' (opens the chart full-screen), 'EDIT_IN_NOTEBOOK' (opens the chart's DQL query in a Notebook), 'PIN_TO_DASHBOARD' (pins the chart to a dashboard), 'CREATE_ALERT' (opens alert creation pre-filled with the chart's metric), 'OPEN_WITH' (opens the chart via a recommended intent).

Example

The example below includes one chart per visualization type. The sectionId field organizes them into collapsible accordion sections.

{
"type": "chart-group",
"id": "host-performance",
"cardTitle": "Performance",
"sections": [
{ "id": "overview", "title": "Overview", "defaultExpanded": true },
{ "id": "trends", "title": "Performance trends", "defaultExpanded": true },
{ "id": "resources", "title": "Resources", "defaultExpanded": false }
],
"charts": [
{
"id": "cpu-single-value",
"displayName": "CPU usage",
"sectionId": "overview",
"dqlQuery": "timeseries cpu = avg(dt.host.cpu.usage), by:{dt.entity.host} | filter dt.entity.host == $(entityId)",
"visualization": {
"type": "SINGLE_VALUE",
"metric": {
"singleValueSettings": { "showSparkLine": true, "showTrend": true },
"foldTransformation": "AVG",
"inputUnit": "units.percent.percent",
"alias": "CPU"
}
}
},
{
"id": "mem-meter-bar",
"displayName": "Memory used",
"sectionId": "overview",
"dqlQuery": "timeseries mem = avg(dt.host.mem.used.percent), by:{dt.entity.host} | filter dt.entity.host == $(entityId)",
"visualization": {
"type": "METER_BAR_CHART",
"settings": {
"min": 0,
"max": 100,
"displayValue": true,
"thresholds": [
{ "name": "Warning", "value": 70, "showIndicator": true, "color": "warning" },
{ "name": "Critical", "value": 90, "showIndicator": true, "color": "critical" }
],
"showThresholdLegend": true
}
}
},
{
"id": "cpu-timeseries",
"displayName": "CPU over time",
"sectionId": "trends",
"dqlQuery": "timeseries cpu = $(aggregation)(dt.host.cpu.usage), by:{dt.entity.host} | filter dt.entity.host == $(entityId)",
"visualization": {
"type": "TIMESERIES_CHART",
"variant": "area",
"metrics": {
"cpu": {
"alias": "CPU usage",
"inputUnit": "units.percent.percent"
}
},
"aggregationTypes": ["AVG", "MAX", "MIN"],
"defaultAggregationType": "AVG"
},
"actions": [
{ "builtInAction": "EXPAND" },
{ "builtInAction": "PIN_TO_DASHBOARD" },
{ "builtInAction": "CREATE_ALERT" }
]
},
{
"id": "net-multi-meter-bar",
"displayName": "Network I/O",
"sectionId": "trends",
"dqlQuery": "timeseries { rx = avg(dt.host.net.nic.bytes_rx), tx = avg(dt.host.net.nic.bytes_tx) }, by:{dt.entity.host} | filter dt.entity.host == $(entityId)",
"visualization": {
"type": "MULTI_METER_BAR_CHART",
"settings": {
"showLegend": true,
"tooltip": "shared",
"min": 0
}
}
},
{
"id": "process-categorical",
"displayName": "Processes by technology",
"sectionId": "resources",
"dqlQuery": "smartscapeNodes \"PROCESS\" | filter dt.smartscape.host == toSmartscapeId($(nodeId)) | summarize count(), by:{process.technology} | sort count() desc | limit 10",
"visualization": {
"type": "CATEGORICAL_CHART",
"settings": {
"layout": "horizontal",
"groupMode": "stacked"
}
}
},
{
"id": "disk-pie",
"displayName": "Disk usage",
"sectionId": "resources",
"dqlQuery": "smartscapeNodes \"HOST\" | filter id == toSmartscapeId($(nodeId)) | fieldsAdd used = disk.usedBytes, free = disk.usableBytes | fields used, free",
"visualization": {
"type": "PIE_CHART",
"seriesOverrides": [
{ "name": "used", "displayName": "Used" },
{ "name": "free", "displayName": "Free" }
]
}
},
{
"id": "net-donut",
"displayName": "Network traffic mix",
"sectionId": "resources",
"dqlQuery": "timeseries { inbound = avg(dt.host.net.nic.bytes_rx), outbound = avg(dt.host.net.nic.bytes_tx) }, by:{dt.entity.host} | filter dt.entity.host == $(entityId)",
"visualization": {
"type": "DONUT_CHART",
"settings": {
"showTotalValue": true,
"labelTotalValue": "Total",
"position": "right",
"valueType": "relative"
}
}
}
]
}

See also

  • DQL variables — includes $(aggregation), $(aggregation_gauge), and $(rollup) placeholders used with aggregationTypes
  • Health indicators
  • Conditional rendering
  • Elements overview
Related tags
ExtensionsExtensionsInfrastructure Observability