2016-05-06 70 views
2

我已經運行'tsdb uid grep metrics'命令並獲取輸出。 Opentsdb uid grep輸出瞭解

 
    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] 
我需要了解方括號中給出的這些值的含義。

回答

1

簡短回答uid grep <metric name>返回指標列表。以上輸出格式爲:

<metric-name> [uid] 

度量標準名稱旁邊的混淆數組只是度量的uid。


一些背景(爲了更清楚) - OpenTSDB分配一個UID來metrictagKtagV

UID是一個正整數,它對於UID 對象的名稱是唯一的,它是類型。在存儲系統中,有一個計數器 ,它針對每個度量標準,tagk和tagv遞增。當您創建新的tsdb-uid表時,該計數器對於每種類型都設置爲0。所以,如果你 把一個新的數據點與sys.cpu.0的度量和標籤對 主機= WEB01你將有3個新的UID對象,各有1

一個UID

的UID (默認情況下)3個字節(24位) - OpenTSDB顯示(即HTTP HTTP)這個UID(24位)爲3字節的數組,這是3個值的混淆數組,即[0, 19, -108]

docs

的UID可以顯示在幾個方面。最常見的方法是通過 HTTP API,其中3個字節的UID數據編碼爲十六進制 字符串。例如,1的UID將以二進制形式寫爲 000000000000000000000001.作爲無符號字節值的數組,您可以將其想象爲[0,0,1]。編碼爲十六進制字符串,值 將爲000001,其中爲每個字節填充字符串0。UID爲255會導致十六進制值爲0000FF(或作爲字節數組, [0,0,255]。要在十進制UID到十六進制之間進行轉換,請使用任何種類的十六進制轉換工具 將0作爲結果 的值,直到總共有6個字符爲止。要將UID從十六進制 轉換爲十進制,只需從前面刪除任意0,然後使用工具將 轉換爲十進制。

在某些CLI工具和日誌文件中,UID可能會顯示爲 帶符號的字節數組(如感謝Java),例如[0,0,1] 或[0,0, - 28]。從這個有符號數組轉換爲一個數組 無符號字節,然後爲十六進制。例如,-28將是二進制10011100 ,其結果是十進制值156和十六進制值9C。