Files
poseidon/deploy/grafana-dashboard/panels/availability_row.py
2023-01-18 15:33:42 +00:00

63 lines
1.8 KiB
Python

from grafanalib.core import RowPanel, BarGauge, GridPos, TimeSeries, ORIENTATION_VERTICAL, \
GAUGE_DISPLAY_MODE_BASIC
from grafanalib.influxdb import InfluxDBTarget
from utils.color_mapping import color_mapping_environments
from utils.utils import read_query
prewarming_pool_size = BarGauge(
title="Prewarming Pool Size",
dataSource="Flux",
targets=[InfluxDBTarget(query=read_query("prewarming-pool-size", "environment-mapping"))],
gridPos=GridPos(h=10, w=11, x=0, y=1),
allValues=True,
orientation=ORIENTATION_VERTICAL,
displayMode=GAUGE_DISPLAY_MODE_BASIC,
max=None,
extraJson=color_mapping_environments,
)
idle_runner = TimeSeries(
title="Idle Runner",
dataSource="Flux",
targets=[InfluxDBTarget(query=read_query("idle-runner", "environment-mapping"))],
gridPos=GridPos(h=10, w=13, x=11, y=1),
lineInterpolation="stepAfter",
maxDataPoints=None,
extraJson=color_mapping_environments,
)
runner_startup_duration = TimeSeries(
title="Runner startup duration",
dataSource="Flux",
targets=[InfluxDBTarget(query=read_query("runner-startup-duration", "environment-mapping"))],
gridPos=GridPos(h=10, w=12, x=0, y=11),
unit="ns",
maxDataPoints=None,
lineInterpolation="smooth",
extraJson=color_mapping_environments,
)
used_runner = TimeSeries(
title="Used Runner",
dataSource="Flux",
targets=[InfluxDBTarget(query=read_query("used-runner"))],
gridPos=GridPos(h=10, w=12, x=12, y=11),
maxDataPoints=None,
lineInterpolation="smooth",
)
availability_row = RowPanel(
title="Availability",
collapsed=False,
gridPos=GridPos(h=1, w=24, x=0, y=0),
)
availability_panels = [
availability_row,
prewarming_pool_size,
idle_runner,
runner_startup_duration,
used_runner,
]