ui/src/assets/docs/dashboard_home.md
Build custom dashboards to track workflow executions, logs and metrics filtered by specific namespaces or labels and showing data you care about.
The declarative syntax allows you to manage dashboards as code — you can version control that dashboard definition alongside your flows.
Below is an example dashboard definition that displays:
title: Getting Started
description: First custom dashboard
timeWindow:
default: P7D
max: P365D
charts:
- id: executions_timeseries
type: io.kestra.plugin.core.dashboard.chart.TimeSeries
chartOptions:
displayName: Executions
description: Executions last week
legend:
enabled: true
column: date
colorByColumn: state
data:
type: io.kestra.plugin.core.dashboard.data.Executions
columns:
date:
field: START_DATE
displayName: Date
state:
field: STATE
total:
displayName: Executions
agg: COUNT
graphStyle: BARS
duration:
displayName: Duration
field: DURATION
agg: SUM
graphStyle: LINES
- id: table_metrics
type: io.kestra.plugin.core.dashboard.chart.Table
chartOptions:
displayName: Sum of sales per namespace
data:
type: io.kestra.plugin.core.dashboard.data.Metrics
columns:
namespace:
field: NAMESPACE
value:
field: VALUE
agg: SUM
where:
- field: NAME
type: EQUAL_TO
value: sales_count
- field: NAMESPACE
type: IN
values:
- dev_graph
- prod_graph
orderBy:
- column: value
order: DESC
- id: table_logs
type: io.kestra.plugin.core.dashboard.chart.Table
chartOptions:
displayName: Log count by level for filtered namespace
data:
type: io.kestra.plugin.core.dashboard.data.Logs
columns:
level:
field: LEVEL
count:
agg: COUNT
where:
- field: NAMESPACE
type: IN
values:
- dev_graph
- prod_graph
For more examples, check our GitHub repository and explore Dashboard Blueprints.
The data property of a chart defines the type of data that is queried. The type determines which columns are displayed.
Dashboards can query data from these source types:
type: io.kestra.plugin.core.dashboard.data.Executions: data related to your workflow executionstype: io.kestra.plugin.core.dashboard.data.Logs: logs produced by your executionstype: io.kestra.plugin.core.dashboard.data.Metrics: metrics emitted during executions.After defining the data source, specify the columns to display in the chart. Each column is defined by the field and may include additional optional properties.
| Property | Description |
|---|---|
field | The only required field, specifies the name of the column in the data source to use |
displayName | Sets the label displayed in the chart |
agg | Defines the aggregation function applied to the column: supported aggregations include AVG, COUNT, MAX, MIN, SUM |
graphStyle | Indicates the style of the graph displayed: supported styles include LINES, BARS, POINTS |
columnAlignment | Specifies the alignment of the column in the table: supported alignments include LEFT, RIGHT, CENTER |
You can also use the where property to set conditions that filter the result set before displaying it in the chart. Filters can apply to any column in the data source. For shared logic, use the AND operator in the where property to combine several conditions. If multiple conditions are needed with a different logic, use the type: OR property.
Available filter types include:
CONTAINSENDS_WITHEQUAL_TOGREATER_THANGREATER_THAN_OR_EQUAL_TOINIS_FALSEIS_NOT_NULLIS_NULLIS_TRUELESS_THANLESS_THAN_OR_EQUAL_TONOT_EQUAL_TONOT_INORREGEXSTARTS_WITH.Available field types include the following columns:
ATTEMPT_NUMBERDATEDURATIONEND_DATEEXECUTION_IDFLOW_IDFLOW_REVISIONIDLABELSLEVELMESSAGENAMENAMESPACESTART_DATESTATETASK_IDTASK_RUN_IDTRIGGER_IDTYPEVALUE.Note that some of the above are reserved only for specific types of data e.g., the LEVEL column is only available for type: io.kestra.plugin.core.dashboard.data.Logs.