Skip to content
Snippets Groups Projects
Commit ff0d75f5 authored by Christoph Alt's avatar Christoph Alt
Browse files

added a dashboard for the garvitywave benchmark

parent 351c4401
No related branches found
No related tags found
No related merge requests found
...@@ -2,7 +2,8 @@ from dashboards.dashboard_base import (DashboardOptions, ...@@ -2,7 +2,8 @@ from dashboards.dashboard_base import (DashboardOptions,
build_dashboard, build_dashboard,
get_commit_annotation, get_commit_annotation,
pack_in_row, pack_in_row,
Repeat,) Repeat,
get_grid_pos)
from dashboards.panels import PanelInfos, get_time_series_panel from dashboards.panels import PanelInfos, get_time_series_panel
...@@ -244,3 +245,75 @@ def dashboard_uniformgridgpu_profile(): ...@@ -244,3 +245,75 @@ def dashboard_uniformgridgpu_profile():
rows=[row], rows=[row],
templating=[*filter_vars], templating=[*filter_vars],
annotations=annotations) annotations=annotations)
def dashboard_fslbmgravitywave():
data_source = 'InfluxDB-1'
arch = 'CPU'
measurment_name = 'FSLBM_gravitywave'
options = DashboardOptions(
title='Free Surface LBM - Gravity Wave',
description="Benchmark dashboard for the FSBLM Gravitywave Benchmark from walberla",
tags=[arch, 'benchmark', 'walberla', 'FSLBM'],
timezone="browser",
)
filters = [
Filter("host"),
Filter("project_id", multi=True, default_value='walberla/walberla'),
Filter("branch", multi=True, default_value='master'),
Filter("numMPIProcess"),
]
fields = [PanelInfos("simulationTime", Units.seconds), ]
filter_vars = [get_dashboard_variable(filter, measurment_name, data_source) for filter in filters]
where = join_variable_and([f.name for f in filters])
annotations = get_commit_annotation(data_source, "red", "commits", measurment_name)
panels = [
get_time_series_panel(
field,
data_source,
measurment_name,
where=where,
group_by=[f.name for f in filters],
gridPos=get_grid_pos(12, 24, 0, idx*(13))
)
for idx, field in enumerate(fields)]
panels.append(
get_time_series_panel(
PanelInfos("/.*_percentage/", Units.percent),
data_source,
measurment_name,
where=where,
group_by=[f.name for f in filters],
gridPos=get_grid_pos(12, 12, 0, len(fields)*(13)),
drawStyle="bars",
stacking={"mode": "normal"},
fillOpacity=70,
gradientMode="Opacity",
tooltipMode="single",
))
panels.append(
get_time_series_panel(
PanelInfos("/Communication.*_percentage/", Units.percent),
data_source,
measurment_name,
where=where,
group_by=[f.name for f in filters],
gridPos=get_grid_pos(12, 12, 12, len(fields)*(13)),
drawStyle="bars",
stacking={"mode": "normal"},
fillOpacity=70,
gradientMode="Opacity",
tooltipMode="single",
))
return build_dashboard(options,
panels=panels,
templating=filter_vars,
annotations=annotations)
...@@ -5,7 +5,7 @@ import dashboards.dashboard_list as boards ...@@ -5,7 +5,7 @@ import dashboards.dashboard_list as boards
from dashboards.upload import upload_dashboard from dashboards.upload import upload_dashboard
from dashboards.dashboard_fe2ti import dashboard_fe2ti from dashboards.dashboard_fe2ti import dashboard_fe2ti
from dashboard_pystencils import dashboard_pystencils_cpu, dashboard_pystencils_gpu from dashboard_pystencils import dashboard_pystencils_cpu, dashboard_pystencils_gpu
from dashboard_walberla import dashboard_uniformgridcpu, dashboard_uniformgridgpu, dashboard_uniformgridgpu_profile from dashboard_walberla import dashboard_uniformgridcpu, dashboard_uniformgridgpu, dashboard_uniformgridgpu_profile, dashboard_fslbmgravitywave
logger = logging.getLogger(__file__) logger = logging.getLogger(__file__)
logger.setLevel(logging.INFO) logger.setLevel(logging.INFO)
...@@ -45,6 +45,7 @@ def main(): ...@@ -45,6 +45,7 @@ def main():
upload_dashboard(dashboard_uniformgridcpu(), folder=walberla_folder) upload_dashboard(dashboard_uniformgridcpu(), folder=walberla_folder)
upload_dashboard(dashboard_uniformgridgpu(), folder=walberla_folder) upload_dashboard(dashboard_uniformgridgpu(), folder=walberla_folder)
upload_dashboard(dashboard_uniformgridgpu_profile(), folder=walberla_folder) upload_dashboard(dashboard_uniformgridgpu_profile(), folder=walberla_folder)
upload_dashboard(dashboard_fslbmgravitywave(), folder=walberla_folder)
else: else:
board = getattr(boards, board_name) board = getattr(boards, board_name)
upload_dashboard(board(), folder=walberla_folder) upload_dashboard(board(), folder=walberla_folder)
......
...@@ -16,29 +16,32 @@ class PanelInfos: ...@@ -16,29 +16,32 @@ class PanelInfos:
absthreshold: Number = field(default=None) absthreshold: Number = field(default=None)
def is_regex(name):
return name[0] == "/" and name[-1] == "/"
def get_time_series_panel(panel_infos: PanelInfos, def get_time_series_panel(panel_infos: PanelInfos,
data_source: str, data_source: str,
measurment_name: str, measurment_name: str,
*, *,
where=None, where=None,
group_by=None, group_by=None,
overrides=None): overrides=None,
is_regex = False **kwargs):
if measurment_name[0] == '/' and measurment_name[-1] == '/':
is_regex = True
query = Query(select_=panel_infos.name, query = Query(select_=panel_infos.name,
from_=measurment_name, from_=measurment_name,
where_=where, where_=where,
group_by=group_by, group_by=group_by,
from_string=not is_regex) from_string=not is_regex(measurment_name),
kwargs = {} select_string=not is_regex(panel_infos.name))
new_kwargs = {**kwargs}
if panel_infos.absthreshold is not None: if panel_infos.absthreshold is not None:
kwargs.update({'thresholdType': 'absolute', new_kwargs.update({'thresholdType': 'absolute',
'thresholds': [Threshold('green', 0, 0.0), 'thresholds': [Threshold('green', 0, 0.0),
Threshold('red', index=1, value=float(panel_infos.absthreshold), op='lt'), ], Threshold('red', index=1, value=float(panel_infos.absthreshold), op='lt'), ],
'thresholdsStyleMode': 'line', 'thresholdsStyleMode': 'line',
} }
) )
return TimeSeries( return TimeSeries(
title=panel_infos.name, title=panel_infos.name,
...@@ -47,7 +50,7 @@ def get_time_series_panel(panel_infos: PanelInfos, ...@@ -47,7 +50,7 @@ def get_time_series_panel(panel_infos: PanelInfos,
unit=panel_infos.unit, unit=panel_infos.unit,
pointSize=9, pointSize=9,
overrides=overrides, overrides=overrides,
**kwargs, **new_kwargs,
) )
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment