mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
41 lines
2.3 KiB
Jsonnet
41 lines
2.3 KiB
Jsonnet
{
|
|
grafanaDashboards+:: if !$._config.grafana7x then {
|
|
local g = import './g.libsonnet',
|
|
local panels = import './panels.libsonnet',
|
|
local variables = import './variables.libsonnet',
|
|
local targets = import './targets.libsonnet',
|
|
local v = variables($._config),
|
|
local t = targets(v, $._config),
|
|
|
|
'etcd.json':
|
|
g.dashboard.new('etcd')
|
|
+ g.dashboard.withUid(std.md5('etcd.json'))
|
|
+ g.dashboard.withRefresh('10s')
|
|
+ g.dashboard.time.withFrom('now-15m')
|
|
+ g.dashboard.time.withTo('now')
|
|
+ g.dashboard.withDescription('etcd sample Grafana dashboard with Prometheus')
|
|
+ g.dashboard.withTags(['etcd-mixin'])
|
|
+ g.dashboard.withVariables([
|
|
v.datasource,
|
|
v.cluster,
|
|
])
|
|
+ g.dashboard.withPanels(
|
|
[
|
|
panels.stat.up('Up', t.up) { gridPos: { x: 0, h: 7, w: 6, y: 0 } },
|
|
panels.timeSeries.rpcRate('RPC rate', [t.rpcRate, t.rpcFailedRate]) { gridPos: { x: 6, h: 7, w: 10, y: 0 } },
|
|
panels.timeSeries.activeStreams('Active streams', [t.watchStreams, t.leaseStreams]) { gridPos: { x: 16, h: 7, w: 8, y: 0 } },
|
|
panels.timeSeries.dbSize('DB size', [t.dbSize]) { gridPos: { x: 0, h: 7, w: 8, y: 25 } },
|
|
panels.timeSeries.diskSync('Disk sync duration', [t.walFsync, t.dbFsync]) { gridPos: { x: 8, h: 7, w: 8, y: 25 } },
|
|
panels.timeSeries.memory('Memory', [t.memory]) { gridPos: { x: 16, h: 7, w: 8, y: 25 } },
|
|
panels.timeSeries.traffic('Client traffic in', [t.clientTrafficIn]) { gridPos: { x: 0, h: 7, w: 6, y: 50 } },
|
|
panels.timeSeries.traffic('Client traffic out', [t.clientTrafficOut]) { gridPos: { x: 6, h: 7, w: 6, y: 50 } },
|
|
panels.timeSeries.traffic('Peer traffic in', [t.peerTrafficIn]) { gridPos: { x: 12, h: 7, w: 6, y: 50 } },
|
|
panels.timeSeries.traffic('Peer traffic out', [t.peerTrafficOut]) { gridPos: { x: 18, h: 7, w: 6, y: 50 } },
|
|
panels.timeSeries.raftProposals('Raft proposals', [t.raftProposals]) { gridPos: { x: 0, h: 7, w: 8, y: 75 } },
|
|
panels.timeSeries.leaderElections('Total leader elections per day', [t.leaderElections]) { gridPos: { x: 8, h: 7, w: 8, y: 75 } },
|
|
panels.timeSeries.peerRtt('Peer round trip time', [t.peerRtt]) { gridPos: { x: 16, h: 7, w: 8, y: 75 } },
|
|
]
|
|
),
|
|
} else {},
|
|
}
|