def paint_perfometer(row): perf_data_string = unicode(row["service_perf_data"].strip()) if not perf_data_string: return "", "" perf_data, check_command = metrics.parse_perf_data(perf_data_string, row["service_check_command"]) if not perf_data: return "", "" if is_stale(row): stale_css = " stale" else: stale_css = "" try: # Try new metrics module title = None translated_metrics = metrics.translate_metrics(perf_data, check_command) if translated_metrics: # definition for this check type exists perfometer_definitions = list(metrics.get_perfometers(translated_metrics)) if perfometer_definitions: title, h = render_metrics_perfometer(perfometer_definitions[0], translated_metrics) # Legacy Perf-O-Meters: find matching Perf-O-Meter function if title == None: perf_painter = perfometers.get(check_command) if not perf_painter: return "", "" title, h = perf_painter(row, check_command, perf_data) if not h: return "", "" # Test code for optically detecting old-style Perf-O-Meters if config.debug: title = '{ ' + title + ' }' except Exception, e: if config.debug: raise return "perfometer", ("invalid data: %s" % e)