This document contains the configuration options for smart dashboard.
line-chart | area-chart |
---|---|
bar-chart | heat-map |
line-chart [compact] | area-chart [compact] |
bar-chart [compact] | heat-map [compact] |
hi-lo-avg [normal, warning, critical] |
---|
average-last [normal, warning, critical] |
donut [normal, warning, critical] |
metric-table [text mode] |
metric-table [sparkline mode] |
metric-table [donut mode] |
TBD
The dashboard configuration files are located at dashboard/**. The files are
This file should contains the list of dashboards. The menu at the top of the screen is rendered by this. The dashboard specific json files should be added to the directory
.
|
The list of dashboards for this dashboard package referenced by the $directory
name. This files feeds the contents of the left nav menu.
This is the configuration for a static dashboard. The dashboard configurations will be loaded from the file dashboard-$id.json
which will be resolved to dashboard-home.json
[
{
"id": "home",
"name": "Dashboard",
"iconClass": "fa fa-dashboard"
}
]
This can be used to generate a dashboard dynamically with a template. In the given example, the metricPath
will be resolved to Application Infrastructure Performance|AccountService|Custom Metrics|Docker|*|Summary|Image Count
, where *
in this case resolves to the name of the docker host.
eg. Application Infrastructure Performance|AccountService|Custom Metrics|Docker|dockerhost1.example.com
|Summary|Image Count
The following example shows the dynamic menu resolving down 2 levels. It resolves to docker host [dockerhost1.example.com
] and the containers [/rabbitmq_rabbit1_1
] in each host.
The dashboard can contain multiple tabs. Each tab contains multiple widgets.
{
"title": "Docker",
"tabs":[
{
"name": "Dashboard",
"widgets":[
{
"row": 0,
"col": 0,
"sizeX": 2,
"sizeY": 1,
"type": "hi-lo-avg",
"clusterRollupType":"avg|sum",
"metricDefs": [
{
"metricPathSuffix": "*|Summary|Container Count",
"metricNameIndicesInSuffix": [2],
"timeRollupType": "avg|sum",
"outlier": {..},
"threshold": {..}
}
],
"header": {..},
"legend": {..},
"outlier": {..}
},
{...}
]
}
]
}
row
,col
,sizeX
,sizeY
: Defines the position and the size of the widget in the grid. By default, there are 6 columns in the grid.type
:line-chart|heat-map|area-chart|bar-chart|hi-lo-avg|average-last|donut|metric-table
clusterRollupType
: If set, the results returned by the metrics(metricDefs
) will be rolledup based on the type (avg|sum). This only makes sense for label like metricshi-lo-avg|average-last|donut
.metricDefs
: Defines what metrics to be fetched.metricPath|metricPathSuffix
: The absolute path or relative path to the metric. The relative path is relative to the config.json.- eg.
"metricPathSuffix": "*|Summary|Container Count"
- This will be resolved to multiple metrics due to the*
- eg.
"metricPathSuffix": "{x}|Summary|Container Count"
- This{x}
is used in dynamic dashboards (section 3.3.2). The{x}
will be replaced by the metric name index resolved in thedashboards/$directory/dashboards.json
.
- eg.
metricNameIndices|metricNameIndicesInSuffix
: The indices to resolve the name of the metricstimeRollupType
: How to find the time rollup value of the metric.maxMetricPath|maxMetricPathSuffix
: This is used to find the max value of the give metric. This is used for health rules or it can be used to show the value in donut.maxIdentifierIndices|maxIdentifierIndicesInSuffix
: The identifier for max metric path.application
: Optional, if not set it will use the one set in config.jsonexcludes
: Regex to exclude the resolved metrics eg.[".*Average.*"]
This section defines the additional special attributes available for the widgets.
The default selected mode of the chart
"widget":[{
"mode": "linear|log|table"
}]
"widget":[{
"titleIndices":[0]
"titleIndicesInSuffix":[0]
}]
"widget": {
"itemsPerPage": 50,
"tableType": "donut", # Default selected mode
"metricDefs": [{
"rowIdentifiers": [3],
"rowIdentifiersInSuffix": [3],
"columnIdentifiers": [4],
"columnIdentifiersInSuffix": [4],
}]
}