Implement pull request comments #200.
Co-authored-by: Sebastian Serth <mrserth@users.noreply.github.com>
This commit is contained in:
@ -2,4 +2,4 @@
|
|||||||
from grafanalib._gen import generate_dashboard
|
from grafanalib._gen import generate_dashboard
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
generate_dashboard(args=['-o', 'main.json', 'poseidon.dashboard.py'])
|
generate_dashboard(args=['-o', 'main.json', 'panels/poseidon.dashboard.py'])
|
||||||
|
@ -2,7 +2,7 @@ from grafanalib.core import RowPanel, BarGauge, GridPos, TimeSeries, ORIENTATION
|
|||||||
GAUGE_DISPLAY_MODE_BASIC
|
GAUGE_DISPLAY_MODE_BASIC
|
||||||
from grafanalib.influxdb import InfluxDBTarget
|
from grafanalib.influxdb import InfluxDBTarget
|
||||||
|
|
||||||
from util import read_query
|
from utils.utils import read_query
|
||||||
|
|
||||||
prewarming_pool_size = BarGauge(
|
prewarming_pool_size = BarGauge(
|
||||||
title="Prewarming Pool Size",
|
title="Prewarming Pool Size",
|
||||||
@ -21,6 +21,7 @@ idle_runner = TimeSeries(
|
|||||||
targets=[InfluxDBTarget(query=read_query("idle-runner"))],
|
targets=[InfluxDBTarget(query=read_query("idle-runner"))],
|
||||||
gridPos=GridPos(h=10, w=13, x=11, y=3),
|
gridPos=GridPos(h=10, w=13, x=11, y=3),
|
||||||
lineInterpolation="stepAfter",
|
lineInterpolation="stepAfter",
|
||||||
|
maxDataPoints=None
|
||||||
)
|
)
|
||||||
|
|
||||||
runner_startup_duration = TimeSeries(
|
runner_startup_duration = TimeSeries(
|
||||||
@ -36,6 +37,7 @@ used_runner = TimeSeries(
|
|||||||
dataSource='Poseidon',
|
dataSource='Poseidon',
|
||||||
targets=[InfluxDBTarget(query=read_query("used-runner"))],
|
targets=[InfluxDBTarget(query=read_query("used-runner"))],
|
||||||
gridPos=GridPos(h=10, w=12, x=12, y=13),
|
gridPos=GridPos(h=10, w=12, x=12, y=13),
|
||||||
|
maxDataPoints=None
|
||||||
)
|
)
|
||||||
|
|
||||||
availability_row = RowPanel(
|
availability_row = RowPanel(
|
||||||
@ -48,4 +50,4 @@ availability_row = RowPanel(
|
|||||||
runner_startup_duration,
|
runner_startup_duration,
|
||||||
used_runner
|
used_runner
|
||||||
]
|
]
|
||||||
)
|
)
|
@ -1,8 +1,9 @@
|
|||||||
from grafanalib.core import RowPanel, GridPos, Stat, TimeSeries, Heatmap, BarGauge, GAUGE_DISPLAY_MODE_GRADIENT
|
from grafanalib.core import RowPanel, GridPos, Stat, TimeSeries, Heatmap, BarGauge, GAUGE_DISPLAY_MODE_GRADIENT, \
|
||||||
|
ORIENTATION_VERTICAL, GAUGE_DISPLAY_MODE_BASIC
|
||||||
from grafanalib.influxdb import InfluxDBTarget
|
from grafanalib.influxdb import InfluxDBTarget
|
||||||
|
|
||||||
from color_mapping import grey_all_mapping
|
from utils.color_mapping import grey_all_mapping
|
||||||
from util import read_query
|
from utils.utils import read_query
|
||||||
|
|
||||||
requests_per_minute = TimeSeries(
|
requests_per_minute = TimeSeries(
|
||||||
title="Requests per minute",
|
title="Requests per minute",
|
||||||
@ -19,6 +20,7 @@ request_latency = Heatmap(
|
|||||||
dataFormat="timeseries",
|
dataFormat="timeseries",
|
||||||
targets=[InfluxDBTarget(query=read_query("request-latency"))],
|
targets=[InfluxDBTarget(query=read_query("request-latency"))],
|
||||||
gridPos=GridPos(h=9, w=8, x=8, y=1),
|
gridPos=GridPos(h=9, w=8, x=8, y=1),
|
||||||
|
maxDataPoints=None,
|
||||||
extraJson={
|
extraJson={
|
||||||
"options": {},
|
"options": {},
|
||||||
"yAxis": {
|
"yAxis": {
|
||||||
@ -34,7 +36,8 @@ service_time = TimeSeries(
|
|||||||
gridPos=GridPos(h=9, w=8, x=16, y=1),
|
gridPos=GridPos(h=9, w=8, x=16, y=1),
|
||||||
scaleDistributionType="log",
|
scaleDistributionType="log",
|
||||||
scaleDistributionLog=10,
|
scaleDistributionLog=10,
|
||||||
unit="ns"
|
unit="ns",
|
||||||
|
maxDataPoints=None
|
||||||
)
|
)
|
||||||
|
|
||||||
current_environment_count = Stat(
|
current_environment_count = Stat(
|
||||||
@ -59,7 +62,8 @@ number_of_executions = BarGauge(
|
|||||||
targets=[InfluxDBTarget(query=read_query("number-of-executions"))],
|
targets=[InfluxDBTarget(query=read_query("number-of-executions"))],
|
||||||
gridPos=GridPos(h=6, w=8, x=16, y=10),
|
gridPos=GridPos(h=6, w=8, x=16, y=10),
|
||||||
allValues=True,
|
allValues=True,
|
||||||
displayMode=GAUGE_DISPLAY_MODE_GRADIENT,
|
orientation=ORIENTATION_VERTICAL,
|
||||||
|
displayMode=GAUGE_DISPLAY_MODE_BASIC,
|
||||||
max=None,
|
max=None,
|
||||||
)
|
)
|
||||||
|
|
@ -1,9 +1,9 @@
|
|||||||
from grafanalib.core import Dashboard, Templating, Time
|
from grafanalib.core import Dashboard, Templating, Time
|
||||||
|
|
||||||
from availability_row import availability_row
|
from panels.availability_row import availability_row
|
||||||
from general_row import general_row
|
from panels.general_row import general_row
|
||||||
from runner_insights_row import runner_insights_row
|
from panels.runner_insights_row import runner_insights_row
|
||||||
from variables import stage_variable, environment_variable
|
from utils.variables import stage_variable, environment_variable
|
||||||
|
|
||||||
dashboard = Dashboard(
|
dashboard = Dashboard(
|
||||||
title="Poseidon autogen",
|
title="Poseidon autogen",
|
@ -1,7 +1,7 @@
|
|||||||
from grafanalib.core import RowPanel, GridPos, Histogram, TimeSeries
|
from grafanalib.core import RowPanel, GridPos, Histogram, TimeSeries
|
||||||
from grafanalib.influxdb import InfluxDBTarget
|
from grafanalib.influxdb import InfluxDBTarget
|
||||||
|
|
||||||
from util import read_query
|
from utils.utils import read_query
|
||||||
|
|
||||||
execution_duration_extra_json = {
|
execution_duration_extra_json = {
|
||||||
"fieldConfig": {
|
"fieldConfig": {
|
||||||
@ -17,6 +17,7 @@ execution_duration = Histogram(
|
|||||||
gridPos=GridPos(h=8, w=24, x=0, y=2),
|
gridPos=GridPos(h=8, w=24, x=0, y=2),
|
||||||
bucketSize=100000000,
|
bucketSize=100000000,
|
||||||
colorMode="palette-classic",
|
colorMode="palette-classic",
|
||||||
|
maxDataPoints=None,
|
||||||
extraJson=execution_duration_extra_json
|
extraJson=execution_duration_extra_json
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -34,6 +35,7 @@ executions_per_minute = TimeSeries(
|
|||||||
dataSource='Poseidon',
|
dataSource='Poseidon',
|
||||||
targets=[InfluxDBTarget(query=read_query("executions-per-minute-time"))],
|
targets=[InfluxDBTarget(query=read_query("executions-per-minute-time"))],
|
||||||
gridPos=GridPos(h=10, w=13, x=11, y=10),
|
gridPos=GridPos(h=10, w=13, x=11, y=10),
|
||||||
|
maxDataPoints=None
|
||||||
)
|
)
|
||||||
|
|
||||||
request_body_size = TimeSeries(
|
request_body_size = TimeSeries(
|
||||||
@ -43,6 +45,7 @@ request_body_size = TimeSeries(
|
|||||||
gridPos=GridPos(h=10, w=11, x=0, y=20),
|
gridPos=GridPos(h=10, w=11, x=0, y=20),
|
||||||
scaleDistributionType="log",
|
scaleDistributionType="log",
|
||||||
unit="bytes",
|
unit="bytes",
|
||||||
|
maxDataPoints=None
|
||||||
)
|
)
|
||||||
|
|
||||||
runner_per_minute = TimeSeries(
|
runner_per_minute = TimeSeries(
|
||||||
@ -50,6 +53,7 @@ runner_per_minute = TimeSeries(
|
|||||||
dataSource='Poseidon',
|
dataSource='Poseidon',
|
||||||
targets=[InfluxDBTarget(query=read_query("runner-per-minute"))],
|
targets=[InfluxDBTarget(query=read_query("runner-per-minute"))],
|
||||||
gridPos=GridPos(h=10, w=13, x=11, y=20),
|
gridPos=GridPos(h=10, w=13, x=11, y=20),
|
||||||
|
maxDataPoints=None
|
||||||
)
|
)
|
||||||
|
|
||||||
runner_insights_row = RowPanel(
|
runner_insights_row = RowPanel(
|
@ -1,6 +1,7 @@
|
|||||||
from(bucket: "poseidon/autogen")
|
from(bucket: "poseidon/autogen")
|
||||||
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|
|> range(start: -1y)
|
||||||
|> filter(fn: (r) => r["_field"] == "duration")
|
|> filter(fn: (r) => r["_measurement"] == "poseidon_environments")
|
||||||
|> keep(columns: ["environment_id"])
|
|> filter(fn: (r) => (not exists r.stage) or contains(value: r["stage"], set: ${stages:json}))
|
||||||
|> distinct(column: "environment_id")
|
|> keep(columns: ["id"])
|
||||||
|
|> distinct(column: "id")
|
||||||
|> keep(columns: ["_value"])
|
|> keep(columns: ["_value"])
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from(bucket: "poseidon/autogen")
|
from(bucket: "poseidon/autogen")
|
||||||
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|
|> range(start: -1y)
|
||||||
|> filter(fn: (r) => r["_field"] == "duration")
|
|> filter(fn: (r) => r["_measurement"] == "poseidon_environments")
|
||||||
|> keep(columns: ["stage"])
|
|> keep(columns: ["stage"])
|
||||||
|> distinct(column: "stage")
|
|> distinct(column: "stage")
|
||||||
|> keep(columns: ["_value"])
|
|> keep(columns: ["_value"])
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
|
|
||||||
|
|
||||||
def read_query(name):
|
def read_query(name):
|
||||||
with open("queries/" + name + ".flux", 'r') as file:
|
with open("queries/" + name + ".flux", 'r') as file:
|
||||||
return file.read()
|
return file.read()
|
@ -1,6 +1,6 @@
|
|||||||
from grafanalib.core import Template
|
from grafanalib.core import Template
|
||||||
|
|
||||||
from util import read_query
|
from utils.utils import read_query
|
||||||
|
|
||||||
stage_variable = Template(
|
stage_variable = Template(
|
||||||
dataSource="Poseidon",
|
dataSource="Poseidon",
|
||||||
@ -22,4 +22,4 @@ environment_variable = Template(
|
|||||||
includeAll=True,
|
includeAll=True,
|
||||||
multi=True,
|
multi=True,
|
||||||
default="$__all"
|
default="$__all"
|
||||||
)
|
)
|
Reference in New Issue
Block a user