Files
poseidon/deploy/grafana-dashboard/runner_insights_row.py
Maximilian Paß 44aa5d73a2 Grafana as Code
Transfer our dashboard into a code representation via grafanalib.
2022-10-29 23:20:29 +01:00

67 lines
1.8 KiB
Python

from grafanalib.core import RowPanel, GridPos, Histogram, TimeSeries
from grafanalib.influxdb import InfluxDBTarget
from util import read_query
execution_duration_extra_json = {
"fieldConfig": {
"defaults": {
"unit": "ns"
}
}
}
execution_duration = Histogram(
title="Execution duration",
dataSource='Poseidon',
targets=[InfluxDBTarget(query=read_query("execution-duration-hist"))],
gridPos=GridPos(h=8, w=24, x=0, y=2),
bucketSize=100000000,
colorMode="palette-classic",
extraJson=execution_duration_extra_json
)
executions_per_runner = Histogram(
title="Executions per runner",
dataSource='Poseidon',
targets=[InfluxDBTarget(query=read_query("executions-per-runner-hist"))],
gridPos=GridPos(h=10, w=11, x=0, y=10),
bucketSize=1,
colorMode="palette-classic",
)
executions_per_minute = TimeSeries(
title="Executions per minute",
dataSource='Poseidon',
targets=[InfluxDBTarget(query=read_query("executions-per-minute-time"))],
gridPos=GridPos(h=10, w=13, x=11, y=10),
)
request_body_size = TimeSeries(
title="Request Body Size",
dataSource='Poseidon',
targets=[InfluxDBTarget(query=read_query("request-body-size"))],
gridPos=GridPos(h=10, w=11, x=0, y=20),
scaleDistributionType="log",
unit="bytes",
)
runner_per_minute = TimeSeries(
title="Runner per minute",
dataSource='Poseidon',
targets=[InfluxDBTarget(query=read_query("runner-per-minute"))],
gridPos=GridPos(h=10, w=13, x=11, y=20),
)
runner_insights_row = RowPanel(
title="Runner Insights",
collapsed=True,
gridPos=GridPos(h=1, w=24, x=0, y=1),
panels=[
execution_duration,
executions_per_runner,
executions_per_minute,
request_body_size,
runner_per_minute
]
)