Render
render
Specifies a visualization type for the query results. When present, the frontend renders the results using the specified chart type instead of the default table grid.
Spec
... | render <chart_type> [with (<property> = <value> [, ...])] Parameters
chart_type - The visualization type (see Chart Types below).
property - Optional rendering properties. Return Value
The same data as the input, annotated with visualization metadata. Render Options
All chart types accept optional with (...) properties to control visualization behavior. Options are passed as key-value pairs.
Universal Options
These options apply to all chart types.
| Option | Type | Default | Description |
|---|---|---|---|
title | string | none | Chart title displayed above the visualization |
legend | bool | heuristic | Show or hide the legend. Default heuristic: show when 1-9 series, hide otherwise |
legendPosition | string | "bottom" | Legend placement: "top", "bottom", "left", "right" |
metrics
| summarize avg(cpu) by bin(timestamp, 1m), host
| render timechart with (title = "CPU by Host", legend = true, legendPosition = "top") Axis Unit Options
These options apply to timechart, linechart, and barchart. They control how numeric values are formatted on axis tick labels.
| Option | Type | Default | Description |
|---|---|---|---|
xUnit | string | none | Unit format for x-axis tick labels |
yUnit | string | none | Unit format for y-axis tick labels |
Supported Units
| Unit ID | Category | Formatting |
|---|---|---|
"bytes" | Data size | Binary auto-scale: B, KB, MB, GB, TB (÷1024) |
"decbytes" | Data size | Decimal auto-scale: B, KB, MB, GB, TB (÷1000) |
"bytesps" | Data rate | Binary auto-scale + /s suffix |
"bits" | Bits | Decimal auto-scale: b, Kb, Mb, Gb |
"celsius" | Temperature | Append °C |
"fahrenheit" | Temperature | Append °F |
"kelvin" | Temperature | Append K |
"seconds" | Duration | Auto-scale to human-readable duration |
"milliseconds" | Duration | Auto-scale to human-readable duration |
"microseconds" | Duration | Auto-scale to human-readable duration |
"percent" | Percent | Values 0–100 shown with % |
"percentunit" | Percent | Values 0–1 multiplied by 100, shown with % |
"none" | Number | SI suffixes for large numbers (K, M, G, T) |
When a column has a timespan type, axis ticks are automatically formatted as durations. An explicit yUnit or xUnit always takes precedence over this auto-detection.
logship.backend.executor.local.schemas.size_bytes
| summarize max = agg_max(max) by bin(timestamp, 1m), account
| render timechart with (title = "Disk Usage", yUnit = "bytes") metrics
| summarize avg(cpu_fraction) by bin(timestamp, 1m)
| render timechart with (yUnit = "percentunit") sensors
| summarize avg(temp) by bin(timestamp, 1m), location
| render linechart with (yUnit = "celsius") Line / Time Chart Options
These options apply to timechart and linechart.
| Option | Type | Default | Description |
|---|---|---|---|
fill | bool | true | Fill the area under lines |
tension | number | 0.05 | Line curve smoothness (0 = sharp angles, 1 = very smooth) |
pointSize | number | 0 | Point radius in pixels (0 = hidden) |
lineWidth | number | 1 | Line border width in pixels |
yScale | string | "linear" | Y-axis scale type: "linear" or "log" |
stacked | bool | false | Stack series on top of each other |
grid | bool | true | Show background grid lines |
spanGaps | bool/number/string | true | Connect points across gaps. true = always connect, false = never connect through missing data, number = max gap in ms to span, "auto" = auto-detect interval and break at 3x the median gap |
metrics
| summarize avg(cpu) by bin(timestamp, 1m), host
| render timechart with (fill = false, tension = 0.4, lineWidth = 2, pointSize = 3) // Auto-detect interval and break lines at large gaps
metrics
| summarize avg(cpu) by bin(timestamp, 1m), host
| render timechart with (spanGaps = "auto") // Break lines when data gaps exceed 5 minutes
metrics
| summarize avg(cpu) by bin(timestamp, 1m), host
| render timechart with (spanGaps = 300000) metrics
| summarize sum(bytes) by bin(timestamp, 1m), service
| render timechart with (stacked = true, yScale = "log", grid = false) Bar Chart Options
These options apply to barchart.
| Option | Type | Default | Description |
|---|---|---|---|
stacked | bool | false | Stack bars for grouped data |
horizontal | bool | false | Render bars horizontally |
grid | bool | true | Show background grid lines |
requests
| summarize count() by region
| render barchart with (horizontal = true) Pie Chart Options
These options apply to piechart.
| Option | Type | Default | Description |
|---|---|---|---|
kind | string | "pie" | Chart variant: "pie" or "doughnut" |
requests
| summarize count() by method
| render piechart with (kind = "doughnut") Gantt Chart Options
These options apply to gantt.
| Option | Type | Default | Description |
|---|---|---|---|
rowHeight | number | 36 | Row height in pixels |
tasks
| project name, start, end, group
| render gantt with (rowHeight = 48) Chart Types
timechart
Time series visualization with a datetime column on the x-axis and numeric metrics on the y-axis.
metrics
| where timestamp > ago(1h)
| summarize avg(cpu) by bin(timestamp, 1m)
| render timechart linechart
Line chart with a numeric x-axis and one or more numeric series.
range x from 0 to 100 step 1
| extend y = sin(x * pi() / 50)
| render linechart barchart
Bar chart for comparing values across categories.
requests
| where timestamp > ago(1d)
| summarize count() by statusCode
| render barchart piechart
Pie chart showing proportional distribution.
requests
| where timestamp > ago(1h)
| summarize count() by method
| render piechart map2d
2D geographic map visualization. Requires latitude and longitude columns of type float64.
locations
| project latitude, longitude, name
| render map2d gantt
Gantt chart for scheduling and timeline visualization. Requires name, start, and end columns. Optionally supports color and group columns.
tasks
| project name, start, end, group
| render gantt trace
Distributed trace visualization for viewing spans in a trace tree. Requires timestamp (datetime), traceid, parentid, and spanid columns.
spans
| where traceid == "abc123"
| project timestamp, traceid, parentid, spanid, operationName, duration
| render trace stat
Statistical card display showing key metrics. Requires at least one numeric field.
metrics
| where timestamp > ago(5m)
| summarize avg(cpu), avg(memory), count()
| render stat table
Default table grid display. This is the default when no render operator is specified.
logs
| take 100
| render table