def test_replace_expression(): perfdata: Perfdata = [(n, len(n), "", 120, 240, 0, 25) for n in ["load1"]] translated_metrics = utils.translate_metrics(perfdata, "check_mk-cpu.loads") assert (utils.replace_expressions( "CPU Load - %(load1:max@count) CPU Cores", translated_metrics) == "CPU Load - 25 CPU Cores")
def test_replace_expression(): perfdata: Perfdata = [(n, len(n), u'', 120, 240, 0, 25) for n in ['load1']] translated_metrics = utils.translate_metrics(perfdata, 'check_mk-cpu.loads') assert utils.replace_expressions( "CPU Load - %(load1:max@count) CPU Cores", translated_metrics) == 'CPU Load - 25 CPU Cores'
def create_graph_recipe_from_template(graph_template: GraphTemplate, translated_metrics: TranslatedMetrics, row: Row) -> GraphRecipe: def _metric(metric_definition: MetricDefinition) -> GraphMetric: metric = GraphMetric({ "title": metric_line_title(metric_definition, translated_metrics), "line_type": metric_definition[1], "expression": metric_expression_to_graph_recipe_expression( metric_definition[0], translated_metrics, row, graph_template.get("consolidation_function", "max"), ), }) unit_color = metric_unit_color(metric_definition[0], translated_metrics) if unit_color: metric.update({ "color": unit_color["color"], "unit": unit_color["unit"], }) return metric metrics = list(map(_metric, graph_template["metrics"])) units = {m["unit"] for m in metrics} if len(units) > 1: raise MKGeneralException( _("Cannot create graph with metrics of " "different units '%s'") % ", ".join(units)) title = replace_expressions(str(graph_template.get("title", "")), translated_metrics) if not title: title = next((m["title"] for m in metrics if m["title"]), "") return { "title": title, "metrics": metrics, "unit": units.pop(), "explicit_vertical_range": get_graph_range(graph_template, translated_metrics), "horizontal_rules": horizontal_rules_from_thresholds( graph_template.get("scalars", []), translated_metrics), # e.g. lines for WARN and CRIT "omit_zero_metrics": graph_template.get("omit_zero_metrics", False), "consolidation_function": graph_template.get("consolidation_function", "max"), }
def create_graph_recipe_from_template(graph_template, translated_metrics, row): def _metrics(metric_definition): return { **metric_unit_color(metric_definition[0], translated_metrics), "title": metric_line_title(metric_definition, translated_metrics), "line_type": metric_definition[1], "expression": metric_expression_to_graph_recipe_expression( metric_definition[0], translated_metrics, row, graph_template.get("consolidation_function", "max")) } metrics = list(map(_metrics, graph_template['metrics'])) units = {m['unit'] for m in metrics} if len(units) > 1: raise MKGeneralException( _("Cannot create graph with metrics of " "different units '%s'") % ", ".join(units)) title = replace_expressions(graph_template.get("title", ""), translated_metrics) if not title: title = next((m['title'] for m in metrics if m['title']), "") return { "title": title, "metrics": metrics, "unit": units.pop(), "explicit_vertical_range": get_graph_range(graph_template, translated_metrics), "horizontal_rules": _horizontal_rules_from_thresholds( graph_template.get("scalars", []), translated_metrics), # e.g. lines for WARN and CRIT "omit_zero_metrics": graph_template.get("omit_zero_metrics", False), "consolidation_function": graph_template.get("consolidation_function", "max"), }