Beginnings of a node-exporter monitoring mixin.
Signed-off-by: Tom Wilkie <tom.wilkie@gmail.com>
This commit is contained in:
parent
17fee8081f
commit
bafe1707f1
11 changed files with 767 additions and 0 deletions
60
node-mixin/lib/promgrafonnet/gauge.libsonnet
Normal file
60
node-mixin/lib/promgrafonnet/gauge.libsonnet
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
local grafana = import 'grafonnet/grafana.libsonnet';
|
||||
local singlestat = grafana.singlestat;
|
||||
local prometheus = grafana.prometheus;
|
||||
|
||||
{
|
||||
new(title, query)::
|
||||
singlestat.new(
|
||||
title,
|
||||
datasource='prometheus',
|
||||
span=3,
|
||||
format='percent',
|
||||
valueName='current',
|
||||
colors=[
|
||||
'rgba(245, 54, 54, 0.9)',
|
||||
'rgba(237, 129, 40, 0.89)',
|
||||
'rgba(50, 172, 45, 0.97)',
|
||||
],
|
||||
thresholds='50, 80',
|
||||
valueMaps=[
|
||||
{
|
||||
op: '=',
|
||||
text: 'N/A',
|
||||
value: 'null',
|
||||
},
|
||||
],
|
||||
)
|
||||
.addTarget(
|
||||
prometheus.target(
|
||||
query
|
||||
)
|
||||
) + {
|
||||
gauge: {
|
||||
maxValue: 100,
|
||||
minValue: 0,
|
||||
show: true,
|
||||
thresholdLabels: false,
|
||||
thresholdMarkers: true,
|
||||
},
|
||||
withTextNullValue(text):: self {
|
||||
valueMaps: [
|
||||
{
|
||||
op: '=',
|
||||
text: text,
|
||||
value: 'null',
|
||||
},
|
||||
],
|
||||
},
|
||||
withSpanSize(size):: self {
|
||||
span: size,
|
||||
},
|
||||
withLowerBeingBetter():: self {
|
||||
colors: [
|
||||
'rgba(50, 172, 45, 0.97)',
|
||||
'rgba(237, 129, 40, 0.89)',
|
||||
'rgba(245, 54, 54, 0.9)',
|
||||
],
|
||||
thresholds: '80, 90',
|
||||
},
|
||||
},
|
||||
}
|
||||
48
node-mixin/lib/promgrafonnet/numbersinglestat.libsonnet
Normal file
48
node-mixin/lib/promgrafonnet/numbersinglestat.libsonnet
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
local grafana = import 'grafonnet/grafana.libsonnet';
|
||||
local singlestat = grafana.singlestat;
|
||||
local prometheus = grafana.prometheus;
|
||||
|
||||
{
|
||||
new(title, query)::
|
||||
singlestat.new(
|
||||
title,
|
||||
datasource='prometheus',
|
||||
span=3,
|
||||
valueName='current',
|
||||
valueMaps=[
|
||||
{
|
||||
op: '=',
|
||||
text: '0',
|
||||
value: 'null',
|
||||
},
|
||||
],
|
||||
)
|
||||
.addTarget(
|
||||
prometheus.target(
|
||||
query
|
||||
)
|
||||
) + {
|
||||
withTextNullValue(text):: self {
|
||||
valueMaps: [
|
||||
{
|
||||
op: '=',
|
||||
text: text,
|
||||
value: 'null',
|
||||
},
|
||||
],
|
||||
},
|
||||
withSpanSize(size):: self {
|
||||
span: size,
|
||||
},
|
||||
withPostfix(postfix):: self {
|
||||
postfix: postfix,
|
||||
},
|
||||
withSparkline():: self {
|
||||
sparkline: {
|
||||
show: true,
|
||||
lineColor: 'rgb(31, 120, 193)',
|
||||
fillColor: 'rgba(31, 118, 189, 0.18)',
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
5
node-mixin/lib/promgrafonnet/promgrafonnet.libsonnet
Normal file
5
node-mixin/lib/promgrafonnet/promgrafonnet.libsonnet
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
numbersinglestat:: import 'numbersinglestat.libsonnet',
|
||||
gauge:: import 'gauge.libsonnet',
|
||||
percentlinegraph:: import 'percentlinegraph.libsonnet',
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue