Charts for AI agents
Each visualization view accepts an optional chart_config object — the key is named chart_config for every view, including views that aren’t strictly charts (table, billboard). Keys must match the schema for the chosen view below. Values reference the output aliases produced by the query — an aggregate aliased count is referenced as "count", not count().
How the fields are packaged depends on the surface: dashboard widgets nest them in an object, query URLs flatten them into parameters. See the dashboards and queries instructions respectively — this reference only defines the fields themselves.
table
Raw result rows and columns. No config.
billboard
Big-number stat tiles: one tile per result row (or one per result field when groupType is fields).
titleField: string — Alias shown as the tile titlevalueField: string — Alias shown as the big number; required whengroupTypeiseventstitleURLField: string — Alias containing a URL; makes the tile title a linksubtitleField: string — Alias shown below the valuestatusField: string — Alias whose value drives the tile’s status indicatorgroupType: string (fields|events) —events(default): one tile per result row usingvalueField;fields: one tile per result field
bar
Bar chart of a value per category.
categoryField: string, REQUIRED — Alias for the category axis; one bar per distinct valuevalueField: string, REQUIRED — Alias for bar heightvalueFieldUnit: string — Unit used to format values:percent,microseconds, ormillisecondslabelField: string — Alias rendered as a label on each bargroupType: string (fields|events) —events(default): series come fromgroupField;fields: every result field exceptcategoryFieldbecomes its own seriesgroupField: string — Alias whose distinct values split bars into series (withgroupTypeevents)horizontal: boolean — Render bars horizontallystacked: boolean — Stack series instead of grouping side by sidegroups: object — Per-series display options keyed by series name, e.g.{"web": {"color": "#4A90D9"}}. Advanced — usually omit
line
One or more series plotted over an x axis, usually time.
xField: string — Alias for the x axis, typically a time bin such asbin(1h)yField: string — Alias plotted as the series value; required whengroupTypeiseventszField: string — Alias whose distinct values split results into one series eachcolorField: string — Alias whose values supply explicit series colorsxFieldUnit: string — Unit used to format x values:percent,microseconds, ormillisecondsyFieldUnit: string — Unit used to format y values:percent,microseconds, ormillisecondsgroupType: string (fields|events) —events(default): one series fromyField, split byzFieldif set;fields: every result field exceptxFieldbecomes its own seriesyAxisLabel: string — Left y-axis label (accepted but not currently applied by the renderer)yAxisMin: number — Left y-axis minimum (accepted but not currently applied by the renderer)yAxisMax: number — Left y-axis maximum (accepted but not currently applied by the renderer)rightYAxisFormat: string — Right y-axis format (accepted but not currently applied by the renderer)rightYAxisLabel: string — Right y-axis label (accepted but not currently applied by the renderer)rightYAxisMin: number — Right y-axis minimum (accepted but not currently applied by the renderer)rightYAxisMax: number — Right y-axis maximum (accepted but not currently applied by the renderer)groups: object — Per-series display options keyed by series name, e.g.{"web": {"color": "#4A90D9"}}; entries may also setaxis(left|right) to plot a series on the right y axis. Advanced — usually omit
area
Like line, with the area under each series filled; series can be stacked.
xField: string — Alias for the x axis, typically a time bin such asbin(1h)yField: string — Alias plotted as the series value; required whengroupTypeiseventszField: string — Alias whose distinct values split results into one series eachgroupType: string (fields|events) —events(default): one series fromyField, split byzFieldif set;fields: every result field exceptxFieldbecomes its own seriesstacked: boolean — Stack series instead of overlaying themgroups: object — Per-series display options keyed by series name, e.g.{"web": {"color": "#4A90D9"}}. Advanced — usually omit
histogram
Distribution of values across buckets.
xField: string, REQUIRED — Alias for the x axisyField: string, REQUIRED — Alias for the y axiszField: string — Alias whose distinct values split results into one series eachxFieldUnit: string — Unit used to format x values:percent,microseconds, ormillisecondsyFieldUnit: string — Unit used to format y values:percent,microseconds, ormillisecondsgroups: object — Per-series display options keyed by series name, e.g.{"web": {"color": "#4A90D9"}}. Advanced — usually omit
scatter
Individual points plotted on two axes.
xField: string, REQUIRED — Alias for the x axisyField: string, REQUIRED — Alias for the y axisgroupField: string — Alias whose distinct values color the pointsscaleField: string — Alias that scales point sizegroups: object — Per-series display options keyed by series name, e.g.{"web": {"color": "#4A90D9"}}. Advanced — usually omit
heatmap
Grid of cells colored by intensity. The query must sort by the x and y fields (| sort x, y) to render correctly.
xField: string, REQUIRED — Alias for the x axis, typically a time bin such asbin(1h)yField: string, REQUIRED — Alias for the y axiszField: string, REQUIRED — Alias for cell value/intensityyFieldUnit: string — Unit used to format y values:percent,microseconds, ormillisecondssteps: integer, minimum 1 — Number of color steps (default 5)groups: object — Per-series display options keyed by series name, e.g.{"web": {"color": "#4A90D9"}}. Advanced — usually omit
pie
Proportional slices; one slice per result row.
nameField: string, REQUIRED — Alias for slice labelsvalueField: string, REQUIRED — Alias for slice sizesgroups: object — Per-slice display options keyed by slice name, e.g.{"web": {"color": "#4A90D9"}}. Advanced — usually omit