2016-05-06 7 views
2

Я запустил команду «tsdb uid grep metrics» и получил ниже результата. Opentsdb uid grep output понимание

 
    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 к metric, tagK, tagV.

UID - положительное целое число, уникальное для имени UID и его тип. Внутри системы хранения есть счетчик , который увеличивается для каждой метрики, tagk и tagv. Когда вы создаете новую таблицу tsdb-uid , этот счетчик устанавливается в 0 для каждого типа. Так что если вы поставить новую точку данных с метрикой sys.cpu.0 и тегом парой хоста = web01 вы будете иметь 3 новые UID объектов, каждый из которых с УИДОМ 1.

UIDs является (по умолчанию) 3 байта (24 бит) - OpenTSDB отображает (т.е. для HTTP api) этот UID (24 бит) как 3 байтовый массив, который представляет собой запутанный массив из 3 значений, то есть [0, 19, -108].

Из docs:

UIDs может отображаться несколькими способами. Наиболее распространенный метод - через HTTP API , где 3 байта данных UID кодируются как шестнадцатеричная строка . Например, UID 1 будет записан в двоичном виде как 000000000000000000000001. В качестве массива значений без знакового байта вы можете представить его как [0, 0, 1]. Закодированный как шестнадцатеричная строка, значение будет 000001, где строка заполняется 0 с для каждого байта. Узел UID 255 приведет к шестнадцатеричному значению 0000FF (или как массив байтов, [0, 0, 255]. Для преобразования между десятичным UID в шестнадцатеричный код используйте любой вид инструмента шестнадцатеричного преобразования, который вы предпочитаете, и положите 0s перед полученным значением , пока у вас не будет всего 6 символов. Чтобы преобразовать из шестнадцатеричного UID в десятичный, просто отбросьте любые 0 с фронта, затем используйте инструмент для , преобразуйте шестнадцатеричную строку в десятичную.

В некоторых инструментах CLI и лог файлы, UID может отображаться в виде массива подписанных байт (благодаря Java), например, приведенному выше примеру [0, 0, 1] или [0, 0, - 28]. Для преобразования из этого подписанного массива в массив из неподписанных байтов, затем в шестнадцатеричный. Например, -28 будет бинарным 10011100 , что приводит к десятичному значению 156 и шестнадцатеричному значению 9C.