2016-05-06 15 views
2

ich habe laufen laufen ‚tsdb uid grep Metriken‘ Befehl und unter Ausgabe bekommen. Opentsdb uid grep Ausgabe Verständnis

 
    win.service.wait_hint: [0, 19, -108] 
    metrics win.system.context_switches: [0, 19, -119] 
    metrics win.system.cpu_queue: [0, 19, -117] 
    metrics win.system.exceptions: [0, 19, -118] 
    metrics win.system.processes: [0, 19, -113] 
Ich muss verstehen, was diese Werte in eckigen Klammern angegeben wird, was bedeutet.

Antwort

1

Kurze Antwort: Die uid grep <metric name> gibt die Liste der Metriken zurück. Die obige Ausgabe ist von Format:

<metric-name> [uid] 

Die verwirrende Anordnung neben dem metrischen Namen nur die UID des Metrik ist.


Einige Hintergrund (Um deutlicher zu machen) - OpenTSDB legt eine UID zu metric, tagK, tagV.

Die UID ist eine positive Ganzzahl, die für den Namen des UID Objekts und seines Typs eindeutig ist. Innerhalb des Speichersystems gibt es einen Zähler , der für jede Metrik, Tagk und Tagv inkrementiert wird. Wenn Sie eine neue tsdb-uid-Tabelle erstellen, wird dieser Zähler für jeden Typ auf 0 gesetzt. Also, wenn Sie einen neuen Datenpunkt mit einer Metrik von sys.cpu.0 und einem Tag-Paar von Host setzen = web01 finden Sie 3 neue UID-Objekte haben, die jeweils mit einer UID 1.

UIDs sind (Standard) von 3 Bytes (24 Bit) - OpenTSDB zeigt (dh für HTTP API) diese UID (24 Bit) als 3-Byte-Array an, was das verwirrende Array von 3 Werten ist, dh [0, 19, -108].

Vom docs:

UIDs können in ein paar Möglichkeiten angezeigt werden. Die gängigste Methode ist über den HTTP API, wo die 3 Bytes von UID-Daten sind als hexadezimale Zeichenfolge codiert. Zum Beispiel würde die UID von 1 binär als ein Array von unsigned Byte-Wert als 000000000000000000000001. geschrieben werden, können Sie es als vorstellen konnten [0, 0, 1]. Der Wert wäre als hexadezimale Zeichenfolge codiert und wäre 000001, wobei die Zeichenfolge für jedes Byte mit 0s aufgefüllt wird. Die UID von 255 in einem Hex-Wert von 0000FF (oder als Byte-Array führen würde, [0, 0, 255]. Zwischen Dezimalzahl UID zu einem Hex, verwenden Sie jede Art von Hex-Konvertierungs-Werkzeug Sie es vorziehen, zu konvertieren und setzen 0s vor dem resultierenden Wert, bis Sie insgesamt 6 Zeichen lang sein. die Umstellung von einem hex- UID in Dezimalzahlen, fällt einfach alle 0s von vorne, dann verwenden Sie ein Werkzeug, um wandeln den hex-String in eine Dezimalzahl. -

In einigen CLI-Tool und Protokolldateien, eine UID kann als ein Array von unterzeichnet Bytes (dank Java) wie das obige Beispiel von [0, 0, 1] oder [0, 0, angezeigt werden 28] Um von diesem vorzeichenbehafteten Array in ein Array vonzu konvertierenunsigned Bytes, dann zu hex. Zum Beispiel wäre -28 eine binäre 10011100 , die zu einem Dezimalwert von 156 und einem Hexadezimalwert von 9C führt.