diff --git a/dashboards/dashboard_base.py b/dashboards/dashboard_base.py index 6d3678cc211cf692344678ec762c5799a56e1ffa..65e1617b58ee4ac8e0031d441074a4313d1f27b3 100644 --- a/dashboards/dashboard_base.py +++ b/dashboards/dashboard_base.py @@ -132,9 +132,10 @@ def get_stat_panel(title: str, stat_query: Query, repeat: Template = None, alias: str = "", + *, + maxPerRow=0, **kwargs): new_kwargs = { - **kwargs, 'alignment': 'center', 'colorMode': 'value', 'graphMode': 'area', @@ -142,8 +143,12 @@ def get_stat_panel(title: str, 'orientation': 'auto', 'transparent': True, } + new_kwargs.update(kwargs) if repeat: - new_kwargs.setdefault('repeat', Repeat('h', repeat.name)) + rep_args = ['h', repeat.name] + if maxPerRow: + rep_args.append(maxPerRow) + new_kwargs.setdefault('repeat', Repeat(*rep_args)) return Stat( title=title, dataSource=dataSource, diff --git a/dashboards/dashboard_list.py b/dashboards/dashboard_list.py index 7105adffd2a2dae078ce8c208dc785b8a388436a..cf6c82cfb8e3dea98e1f477889cb4486d4a5616a 100644 --- a/dashboards/dashboard_list.py +++ b/dashboards/dashboard_list.py @@ -214,12 +214,20 @@ def dashboard_general_infos(): show_tag_values("", 'host'), dataSource) + benchmark_var = get_dashboard_variable_query('benchmark', + show_tag_values(measurment_name, 'name'), + dataSource, + regex="/benchmark_(.*)_[^_]+/") + def get_query(name_base: str): + conds = [f'"name" =~ /{name_base}/', f'"name" =~ /${host_var.name}/'] + if name_base == "benchmark": + conds.append(f'"name" =~ /${benchmark_var.name}/') return Query( select_="duration", from_=measurment_name, where_=join_conditions( - [f'"name" =~ /{name_base}/', f'"name" =~ /${host_var.name}/'], + conds, "AND"), group_by=['name']) @@ -240,12 +248,15 @@ def dashboard_general_infos(): gridPos=get_grid_pos(12, 24, 0, 13), format='s', alias="$tag_name") - panel_benchmark = get_stat_panel("Benchmark Runtime", + panel_benchmark = get_stat_panel("Runtime $benchmark", dataSource, get_query("benchmark"), - gridPos=get_grid_pos(30, 24, 0, 26), + gridPos=get_grid_pos(10, 24, 0, 26), format='s', - alias="$tag_name") + repeat=benchmark_var, + alias="$tag_name", + colorMode="background", + maxPerRow=2) return build_dashboard(options, panels=[cpu_list, gpu_list, panel_build, panel_benchmark], - templating=[host_var]) + templating=[host_var, benchmark_var])