def _get_metric_infos(self, service_metrics, check_command): metric_infos = {} for nr, perfvar in enumerate(service_metrics): translated = perfvar_translation(perfvar, check_command) name = translated["name"] mi = metric_info.get(name, {}) metric_infos[perfvar] = { "index": nr, "name": name, "title": mi.get("title", name.title()), } return metric_infos
def resolve_units(request): # This relies on python3.8 dictionaries being always ordered # Otherwise it is not possible to mach the unit name to value # CascadingDropdowns enumerate the options instead of using keys known_units = list(unit_info.keys()) required_unit = metric_info.get(request["metric"], {}).get("unit", "") try: index = known_units.index(required_unit) except ValueError: index = known_units.index("") return {"unit": required_unit, "option_place": index}
def _metric_title_from_id(metric_or_graph_id: MetricName) -> str: metric_id = metric_or_graph_id.replace("METRIC_", "") return str(metric_info.get(metric_id, {}).get("title", metric_id))