예제 #1
0
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)
예제 #2
0
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)