diff --git a/dashboards/dashboard_base.py b/dashboards/dashboard_base.py index 652287cd2cd2f83a458bf4ae43638f0b5577b92f..4b2ae821938d405e16ccec745b0cf984e6ca7b1c 100644 --- a/dashboards/dashboard_base.py +++ b/dashboards/dashboard_base.py @@ -102,18 +102,28 @@ def pack_in_row(title: str, ) -def get_stat_panel(title: str, dataSource: str, stat_query: Query, **kwargs): +def get_stat_panel(title: str, + dataSource: str, + stat_query: Query, + repeat: Template = None, + alias: str = "", + **kwargs): + new_kwargs = { + **kwargs, + 'alignment': 'center', + 'colorMode': 'value', + 'graphMode': 'area', + 'reduceCalc': 'last', + 'orientation': 'auto', + 'transparent': True, + } + if repeat: + new_kwargs.setdefault('repeat', Repeat('h', repeat.name)) return Stat( title=title, dataSource=dataSource, - alignment='center', - colorMode='value', - graphMode='area', - reduceCalc='last', - orientation='auto', - transparent=True, targets=[ - get_influx_target(str(stat_query), alias="$tag_name") + get_influx_target(str(stat_query), alias=alias) ], - **kwargs, + **new_kwargs, ) diff --git a/dashboards/dashboard_list.py b/dashboards/dashboard_list.py index 59b78cf2a3188539667d382a678cb8710f16e0c4..8907af3c88c9b3e88686f1e3e6b264154c1ab768 100644 --- a/dashboards/dashboard_list.py +++ b/dashboards/dashboard_list.py @@ -3,7 +3,8 @@ from typing import List from dashboards.dashboard_base import (DashboardOptions, build_dashboard, build_row_repeat_dashboard, get_dashboard_variable_query, - get_grid_pos, get_stat_panel) + get_grid_pos, get_stat_panel, + pack_in_row) from dashboards.influx_queries import (Query, get_variable_condition, join_conditions, join_variable_and, show_tag_values) @@ -174,13 +175,27 @@ def dashboard_phasefieldallenchan(): ] ) - return build_row_repeat_dashboard(options, - row_repeat_var, - panel_repeat_var, - dataSource, - measurment_name, - query, - unit) + power_query = Query( + select_="Power Core [W]", + from_="PhaseFieldAllenCahn_ENERGY", + where_=get_variable_condition(panel_repeat) + ) + + panel_power = get_stat_panel("Total Power Consumption on $host in Watt[W]", + dataSource, + power_query, + repeat=panel_repeat_var, + format='W') + + dashboard = build_row_repeat_dashboard(options, + row_repeat_var, + panel_repeat_var, + dataSource, + measurment_name, + query, + unit) + dashboard.rows = [pack_in_row("Power Consumption", panel_power), *dashboard.rows] + return dashboard.auto_panel_ids() def dashboard_phasefieldallenchangpu(): @@ -269,10 +284,14 @@ def dashboard_general_infos(): dataSource, get_query("build"), gridPos=get_grid_pos(12, 24, 0, 0), - format='s') + format='s', + alias="$tag_name" + ) panel_benchmark = get_stat_panel("Benchmark Runtime", dataSource, get_query("benchmark"), gridPos=get_grid_pos(30, 24, 0, 13), - format='s') + format='s', + alias="$tag_name" + ) return build_dashboard(options, panels=[panel_build, panel_benchmark], templating=[host_var]) diff --git a/dashboards/influx_queries.py b/dashboards/influx_queries.py index 6441f0b8275ddde21cbb813c2ae5cbabcaf0fa4c..4dff22b1bbfe28f9d182957c5b83d6928420c59d 100644 --- a/dashboards/influx_queries.py +++ b/dashboards/influx_queries.py @@ -15,8 +15,9 @@ class Query: ret = f'SELECT \"{self.select_}\" ' ret += f'FROM \"{self.from_}\" ' ret += f'WHERE ({self.where_}) AND $timeFilter ' - group_by = ', '.join(f'"{tag}"' for tag in self.group_by) - ret += f'GROUP BY {group_by}' + if self.group_by: + group_by = ', '.join(f'"{tag}"' for tag in self.group_by) + ret += f'GROUP BY {group_by}' return ret