Metriken / Einheiten bei lokalen Checks

Hallo,

ich habe kürzlich von CRE 1.5 (über CRE 1.6) auf CRE 2.0 aktualisiert.

Jetzt fällt mir auf dass bei lokalen Checks in der Grafenanzeige die Werte in Exponentialschreibweise dargestellt wird.

Also für 0-99999 die normale Zahl und ab 100.000 dann 1.00+e05.

Beispielbild:

grafik_einheitendarstellung

Die Exponentialschreibweise ist wenig hilfreich. Ich meine, vorher stand da etwas wie “K/M/G/T”, was viel hilfreicher war, auch wenn es vielleicht nicht überall korrekt war(K könnte man bei Bytes als Kibibytes interpretieren, was es natürlich dann nicht ist).

Ich habe schon ein paar Fundstellen/Threads hier gefunden, welche sich damit beschäftigen. Siehe Ende des Beitrages.

Danach habe ich für einen Local-Check der SMTP_TRAFFIC_OUT benannt ist eine Datei $HOME/local/share/check_mk/web/plugins/metrics/check_TRAFFIC_SMTP_OUT.py erstellt …

#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-

check_metrics["check_mk-TRAFFIC_SMTP_OUT"] = {
  "Bytes" : { "name" : "Bytes_Out",  "scale" : K },
}

und Check-MK neu gestartet(cmk -R). Bisher keinerlei Auswirkungen.

Die Ausgabe des lokal Checks ist z. B. :

0 TRAFFIC_SMTP_OUT bytes_out=8084 OK - Durchschnittlicher ausgehender Mailtraffic von 7.8 KBytes/Minute

Sinnvolle gefundene Beiträge/Links dazu:

Ich habe jetzt auch nochmal die Metrikendatei verändert, weil ich gesehen habe, dass die Groß-/Kleinschreibung in der Agentenausgabe anders ist:

#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-

check_metrics["check_mk-TRAFFIC_SMTP_OUT"] = {
  "Bytes" : { "name" : "bytes_out",  "scale" : K },
}

Hat aber auch nicht geholfen.

Also damit (in der vorgenannten Datei) bekomme ich jetzt grundsätzlich mal die Einheit auf Bytes/s gesetzt und ansonsten noch als Farbe grün:

metric_info["bytes_out"] = {

    "title" : _("sent Bytes/s"),
    "unit"  : "bytes/s",
    "color" : "#00ff00"

}

Allerdings habe ich nicht bytes/s sondern bytes/min in meinem Check als Ausgabe. Das müsste ich noch konvertieren. Laut dem Videovortrag von Matthias Kettner ist das der eigentlich Sinn des Scale-Wertes.

Doch diese Einstellung hat keinerlei Wirkung:

check_metrics["check_mk-TRAFFIC_SMTP_OUT"] = {
     "bytes_out"  : { "scale" : 1 / 60.0 }
 }

So könnte das richtig aussehen. Das Rechnen einfach erst im Graph machen ist einfacher finde ich.
Bisl lustige RPN lernen :slight_smile:

metric_info["bytes_out"] = {
    "title" : _("sent Bytes"),
    "unit"  : "bytes",
    "color" : "16/a",
}

graph_info.append({
    "title" : _("sent Bytes per second"),
    "metrics" : [
        ("bytes_out,60,/", "area"),
    ],
    "scalars" : [
        ("bytes_out:max#000000", "Maximum"),
        ("bytes_out:warn", "Warning"),
        ("bytes_out:crit", "Critical"),
    ],
})
1 Like

Also in Anbetracht der Tatsache, dass das andere schlicht nicht geht, würde ich dem zustimmen.

Ansonsten habe ich versucht etwas im Code zu suchen, wo denn die Umwandlung mittels scale direkt passiert. Bis zum Kern bin ich da noch nicht vorgedrungen. Ich sehe nur, dass bytes_out bei mir mit einem scale - Faktor von 1.0 umgewandelt wird, also gar nicht.

Die strukturelle Trennung zwischen Metrikverarbeitung und -darstellung finde ich im Übrigen schon gut: Erst mal die Daten bearbeiten und dann bei der Darstellung nur noch darum kümmern müssen.

Ich vermute, der Bezeichner “check_mk-TRAFFIC-SMTP-OUT” ist nicht der passende. Aber soweit bin ich im Check-MK-Code noch nicht durchgestiegen, dass ich die Stelle sehe, wo ich diesen Index mal debugmässig für alle Umwandlungen ausgeben kann.

Durch Zufall habe ich entdeckt, wie der Bezeichner wirklich heißen muss.

Bei mir ist es “check_mk-local”.

Der Ort an dem es das steht, ist im Webinterface in der Detailansicht des Checks:

Service check command	check_mk-local

Hier nochmal die komplette und funktionierende Konfiguration:

metric_info["bytes_out"] = {

    "title" : _("sent Bytes/s"),
    "unit"  : "bytes/s",
    "color" : "#00ffff"

}

check_metrics["check_mk-local"] = {
     "bytes_out"  : { "scale" : 1 / 60.0 }
}

graph_info.append({
    "title" : _("SMTP outbound traffic"),
        "metrics" : [
            ( "bytes_out", "area"),
        ]
})

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed. Contact an admin if you think this should be re-opened.