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

116 lines
3.4 KiB
Python

from grafanalib.core import RowPanel, GridPos, Histogram, TimeSeries, BarGauge, ORIENTATION_VERTICAL, \
GAUGE_DISPLAY_MODE_BASIC, PERCENT_UNIT_FORMAT, GAUGE_CALC_MEAN
from grafanalib.influxdb import InfluxDBTarget
from utils.color_mapping import color_mapping_environments
from utils.utils import read_query, deep_update_dict
execution_duration_extra_json = {
"fieldConfig": {
"defaults": {
"unit": "ns"
}
}
}
deep_update_dict(execution_duration_extra_json, color_mapping_environments)
execution_duration = Histogram(
title="Execution duration",
dataSource="Flux",
targets=[InfluxDBTarget(query=read_query("execution-duration-hist", "environment-mapping"))],
gridPos=GridPos(h=8, w=24, x=0, y=49),
bucketSize=100000000,
colorMode="palette-classic",
fillOpacity=50,
lineWidth=1,
maxDataPoints=None,
extraJson=execution_duration_extra_json,
)
executions_per_runner = Histogram(
title="Executions per runner",
dataSource="Flux",
targets=[InfluxDBTarget(query=read_query("executions-per-runner-hist", "environment-mapping"))],
gridPos=GridPos(h=10, w=11, x=0, y=57),
bucketSize=1,
colorMode="palette-classic",
fillOpacity=50,
lineWidth=1,
maxDataPoints=None,
extraJson=color_mapping_environments,
)
executions_per_minute = TimeSeries(
title="Executions per minute",
dataSource="Flux",
targets=[InfluxDBTarget(query=read_query("executions-per-minute-time", "environment-mapping"))],
gridPos=GridPos(h=10, w=13, x=11, y=57),
maxDataPoints=None,
lineInterpolation="smooth",
extraJson=color_mapping_environments,
)
file_upload = TimeSeries(
title="File Upload",
dataSource="Flux",
targets=[InfluxDBTarget(query=read_query("file-upload", "environment-mapping"))],
gridPos=GridPos(h=10, w=11, x=0, y=67),
scaleDistributionType="log",
unit="bytes",
maxDataPoints=None,
lineInterpolation="smooth",
extraJson=color_mapping_environments,
)
runner_per_minute = TimeSeries(
title="Runner per minute",
dataSource="Flux",
targets=[InfluxDBTarget(query=read_query("runner-per-minute", "environment-mapping"))],
gridPos=GridPos(h=10, w=13, x=11, y=67),
maxDataPoints=None,
lineInterpolation="smooth",
extraJson=color_mapping_environments,
)
file_download = TimeSeries(
title="File Download",
dataSource="Flux",
targets=[InfluxDBTarget(query=read_query("file-download", "environment-mapping"))],
gridPos=GridPos(h=10, w=11, x=0, y=77),
scaleDistributionType="log",
unit="bytes",
maxDataPoints=None,
lineInterpolation="smooth",
extraJson=color_mapping_environments,
)
file_download_ratio = BarGauge(
title="File Download Ratio",
dataSource="Flux",
targets=[InfluxDBTarget(query=read_query("file-download-ratio", "environment-mapping"))],
gridPos=GridPos(h=10, w=13, x=11, y=77),
max=1,
allValues=False,
calc=GAUGE_CALC_MEAN,
orientation=ORIENTATION_VERTICAL,
displayMode=GAUGE_DISPLAY_MODE_BASIC,
format=PERCENT_UNIT_FORMAT,
extraJson=color_mapping_environments,
)
runner_insights_row = RowPanel(
title="Runner Insights",
collapsed=False,
gridPos=GridPos(h=1, w=24, x=0, y=48),
)
runner_insights_panels = [
runner_insights_row,
execution_duration,
executions_per_runner,
executions_per_minute,
file_upload,
runner_per_minute,
file_download,
file_download_ratio,
]