From 137e3ff1ee4a526fae0f27f7f2f5bab1fdb8b8f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Pa=C3=9F?= <22845248+mpass99@users.noreply.github.com> Date: Sat, 29 Oct 2022 19:36:25 +0100 Subject: [PATCH] Implement pull request comments #200. Co-authored-by: Sebastian Serth --- deploy/grafana-dashboard/main.py | 2 +- .../{ => panels}/availability_row.py | 6 ++++-- .../grafana-dashboard/{ => panels}/general_row.py | 14 +++++++++----- .../{ => panels}/poseidon.dashboard.py | 8 ++++---- .../{ => panels}/runner_insights_row.py | 6 +++++- .../grafana-dashboard/queries/environment-ids.flux | 9 +++++---- deploy/grafana-dashboard/queries/stages.flux | 4 ++-- .../grafana-dashboard/{ => utils}/color_mapping.py | 0 .../grafana-dashboard/{util.py => utils/utils.py} | 1 - deploy/grafana-dashboard/{ => utils}/variables.py | 4 ++-- 10 files changed, 32 insertions(+), 22 deletions(-) rename deploy/grafana-dashboard/{ => panels}/availability_row.py (94%) rename deploy/grafana-dashboard/{ => panels}/general_row.py (90%) rename deploy/grafana-dashboard/{ => panels}/poseidon.dashboard.py (67%) rename deploy/grafana-dashboard/{ => panels}/runner_insights_row.py (93%) rename deploy/grafana-dashboard/{ => utils}/color_mapping.py (100%) rename deploy/grafana-dashboard/{util.py => utils/utils.py} (99%) rename deploy/grafana-dashboard/{ => utils}/variables.py (92%) diff --git a/deploy/grafana-dashboard/main.py b/deploy/grafana-dashboard/main.py index 47b9c26..d910d62 100644 --- a/deploy/grafana-dashboard/main.py +++ b/deploy/grafana-dashboard/main.py @@ -2,4 +2,4 @@ from grafanalib._gen import generate_dashboard if __name__ == '__main__': - generate_dashboard(args=['-o', 'main.json', 'poseidon.dashboard.py']) + generate_dashboard(args=['-o', 'main.json', 'panels/poseidon.dashboard.py']) diff --git a/deploy/grafana-dashboard/availability_row.py b/deploy/grafana-dashboard/panels/availability_row.py similarity index 94% rename from deploy/grafana-dashboard/availability_row.py rename to deploy/grafana-dashboard/panels/availability_row.py index 338f01b..005cfa3 100644 --- a/deploy/grafana-dashboard/availability_row.py +++ b/deploy/grafana-dashboard/panels/availability_row.py @@ -2,7 +2,7 @@ from grafanalib.core import RowPanel, BarGauge, GridPos, TimeSeries, ORIENTATION GAUGE_DISPLAY_MODE_BASIC from grafanalib.influxdb import InfluxDBTarget -from util import read_query +from utils.utils import read_query prewarming_pool_size = BarGauge( title="Prewarming Pool Size", @@ -21,6 +21,7 @@ idle_runner = TimeSeries( targets=[InfluxDBTarget(query=read_query("idle-runner"))], gridPos=GridPos(h=10, w=13, x=11, y=3), lineInterpolation="stepAfter", + maxDataPoints=None ) runner_startup_duration = TimeSeries( @@ -36,6 +37,7 @@ used_runner = TimeSeries( dataSource='Poseidon', targets=[InfluxDBTarget(query=read_query("used-runner"))], gridPos=GridPos(h=10, w=12, x=12, y=13), + maxDataPoints=None ) availability_row = RowPanel( @@ -48,4 +50,4 @@ availability_row = RowPanel( runner_startup_duration, used_runner ] -) \ No newline at end of file +) diff --git a/deploy/grafana-dashboard/general_row.py b/deploy/grafana-dashboard/panels/general_row.py similarity index 90% rename from deploy/grafana-dashboard/general_row.py rename to deploy/grafana-dashboard/panels/general_row.py index 04258ea..d968e72 100644 --- a/deploy/grafana-dashboard/general_row.py +++ b/deploy/grafana-dashboard/panels/general_row.py @@ -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 color_mapping import grey_all_mapping -from util import read_query +from utils.color_mapping import grey_all_mapping +from utils.utils import read_query requests_per_minute = TimeSeries( title="Requests per minute", @@ -19,6 +20,7 @@ request_latency = Heatmap( dataFormat="timeseries", targets=[InfluxDBTarget(query=read_query("request-latency"))], gridPos=GridPos(h=9, w=8, x=8, y=1), + maxDataPoints=None, extraJson={ "options": {}, "yAxis": { @@ -34,7 +36,8 @@ service_time = TimeSeries( gridPos=GridPos(h=9, w=8, x=16, y=1), scaleDistributionType="log", scaleDistributionLog=10, - unit="ns" + unit="ns", + maxDataPoints=None ) current_environment_count = Stat( @@ -59,7 +62,8 @@ number_of_executions = BarGauge( targets=[InfluxDBTarget(query=read_query("number-of-executions"))], gridPos=GridPos(h=6, w=8, x=16, y=10), allValues=True, - displayMode=GAUGE_DISPLAY_MODE_GRADIENT, + orientation=ORIENTATION_VERTICAL, + displayMode=GAUGE_DISPLAY_MODE_BASIC, max=None, ) diff --git a/deploy/grafana-dashboard/poseidon.dashboard.py b/deploy/grafana-dashboard/panels/poseidon.dashboard.py similarity index 67% rename from deploy/grafana-dashboard/poseidon.dashboard.py rename to deploy/grafana-dashboard/panels/poseidon.dashboard.py index bf368b7..8fe3146 100644 --- a/deploy/grafana-dashboard/poseidon.dashboard.py +++ b/deploy/grafana-dashboard/panels/poseidon.dashboard.py @@ -1,9 +1,9 @@ from grafanalib.core import Dashboard, Templating, Time -from availability_row import availability_row -from general_row import general_row -from runner_insights_row import runner_insights_row -from variables import stage_variable, environment_variable +from panels.availability_row import availability_row +from panels.general_row import general_row +from panels.runner_insights_row import runner_insights_row +from utils.variables import stage_variable, environment_variable dashboard = Dashboard( title="Poseidon autogen", diff --git a/deploy/grafana-dashboard/runner_insights_row.py b/deploy/grafana-dashboard/panels/runner_insights_row.py similarity index 93% rename from deploy/grafana-dashboard/runner_insights_row.py rename to deploy/grafana-dashboard/panels/runner_insights_row.py index 970dd97..da12081 100644 --- a/deploy/grafana-dashboard/runner_insights_row.py +++ b/deploy/grafana-dashboard/panels/runner_insights_row.py @@ -1,7 +1,7 @@ from grafanalib.core import RowPanel, GridPos, Histogram, TimeSeries from grafanalib.influxdb import InfluxDBTarget -from util import read_query +from utils.utils import read_query execution_duration_extra_json = { "fieldConfig": { @@ -17,6 +17,7 @@ execution_duration = Histogram( gridPos=GridPos(h=8, w=24, x=0, y=2), bucketSize=100000000, colorMode="palette-classic", + maxDataPoints=None, extraJson=execution_duration_extra_json ) @@ -34,6 +35,7 @@ executions_per_minute = TimeSeries( dataSource='Poseidon', targets=[InfluxDBTarget(query=read_query("executions-per-minute-time"))], gridPos=GridPos(h=10, w=13, x=11, y=10), + maxDataPoints=None ) request_body_size = TimeSeries( @@ -43,6 +45,7 @@ request_body_size = TimeSeries( gridPos=GridPos(h=10, w=11, x=0, y=20), scaleDistributionType="log", unit="bytes", + maxDataPoints=None ) runner_per_minute = TimeSeries( @@ -50,6 +53,7 @@ runner_per_minute = TimeSeries( dataSource='Poseidon', targets=[InfluxDBTarget(query=read_query("runner-per-minute"))], gridPos=GridPos(h=10, w=13, x=11, y=20), + maxDataPoints=None ) runner_insights_row = RowPanel( diff --git a/deploy/grafana-dashboard/queries/environment-ids.flux b/deploy/grafana-dashboard/queries/environment-ids.flux index 181cea3..401fa4b 100644 --- a/deploy/grafana-dashboard/queries/environment-ids.flux +++ b/deploy/grafana-dashboard/queries/environment-ids.flux @@ -1,6 +1,7 @@ from(bucket: "poseidon/autogen") - |> range(start: v.timeRangeStart, stop: v.timeRangeStop) - |> filter(fn: (r) => r["_field"] == "duration") - |> keep(columns: ["environment_id"]) - |> distinct(column: "environment_id") + |> range(start: -1y) + |> filter(fn: (r) => r["_measurement"] == "poseidon_environments") + |> filter(fn: (r) => (not exists r.stage) or contains(value: r["stage"], set: ${stages:json})) + |> keep(columns: ["id"]) + |> distinct(column: "id") |> keep(columns: ["_value"]) diff --git a/deploy/grafana-dashboard/queries/stages.flux b/deploy/grafana-dashboard/queries/stages.flux index e233864..513edec 100644 --- a/deploy/grafana-dashboard/queries/stages.flux +++ b/deploy/grafana-dashboard/queries/stages.flux @@ -1,6 +1,6 @@ from(bucket: "poseidon/autogen") - |> range(start: v.timeRangeStart, stop: v.timeRangeStop) - |> filter(fn: (r) => r["_field"] == "duration") + |> range(start: -1y) + |> filter(fn: (r) => r["_measurement"] == "poseidon_environments") |> keep(columns: ["stage"]) |> distinct(column: "stage") |> keep(columns: ["_value"]) diff --git a/deploy/grafana-dashboard/color_mapping.py b/deploy/grafana-dashboard/utils/color_mapping.py similarity index 100% rename from deploy/grafana-dashboard/color_mapping.py rename to deploy/grafana-dashboard/utils/color_mapping.py diff --git a/deploy/grafana-dashboard/util.py b/deploy/grafana-dashboard/utils/utils.py similarity index 99% rename from deploy/grafana-dashboard/util.py rename to deploy/grafana-dashboard/utils/utils.py index 55d473a..38922b7 100644 --- a/deploy/grafana-dashboard/util.py +++ b/deploy/grafana-dashboard/utils/utils.py @@ -1,5 +1,4 @@ - def read_query(name): with open("queries/" + name + ".flux", 'r') as file: return file.read() diff --git a/deploy/grafana-dashboard/variables.py b/deploy/grafana-dashboard/utils/variables.py similarity index 92% rename from deploy/grafana-dashboard/variables.py rename to deploy/grafana-dashboard/utils/variables.py index 890f6e4..a3c6573 100644 --- a/deploy/grafana-dashboard/variables.py +++ b/deploy/grafana-dashboard/utils/variables.py @@ -1,6 +1,6 @@ from grafanalib.core import Template -from util import read_query +from utils.utils import read_query stage_variable = Template( dataSource="Poseidon", @@ -22,4 +22,4 @@ environment_variable = Template( includeAll=True, multi=True, default="$__all" -) \ No newline at end of file +)