Статистика
OpenTSDB предоставляет ряд метрик о своей производительности, доступных через различные конечные точки API. Основную статистику можно получить из графического интерфейса через вкладку «Статистика», из API Http по адресу /api/stats или через устаревший API по адресу /stats. API в стиле Telnet также поддерживает команду «stats» для получения данных через командную строку. Их можно легко опубликовать обратно в OpenTSDB с любым интервалом.
Дополнительная статистика включает информацию о JVM, сведения о хранилище (например, статистику HBase по клиентам в каждом регионе) и подробности выполненных запросов. Более подробную информацию о других конечных точках см. в /api/stats.
Все метрики из основной конечной точки статистики включают тег host, который содержит имя хоста, на котором работает TSD. Если установлен флаг конфигурации tsd.stats.canonical, он изменится на fqdn, и TSD попытается разрешить имя хоста, чтобы вернуть полное доменное имя. В настоящее время все статистические данные представляют собой целочисленные значения. Каждый запрос для получения статистики извлекает статистику в реальном времени, поэтому метка времени будет отражать текущее время на хосте TSD.
Примечание
Конечная точка /api/stats — хорошее место для проверки работоспособности вашего TSD, так как она выполнит запрос к хранилищу для извлечения статистики UID. Если TSD не может подключиться к базовому хранилищу, API вернёт исключение.
| Метрика | Теги | Тип | Описание |
|---|
| tsd.connectionmgr.connections | type=open | Gauge | Количество открытых в данный момент Telnet и HTTP подключений. |
| tsd.connectionmgr.connections | type=total | Counter | Общее количество подключений к OpenTSDB. Включает все Telnet и HTTP подключения. |
| tsd.connectionmgr.exceptions | type=closed | Counter | Общее количество исключений, вызванных записью в канал, который уже был закрыт. Это может произойти, если запрос занимает слишком много времени, клиент закрывает своё подключение корректно, а TSD пытается записать в сокет. Включает все Telnet и HTTP подключения. |
| tsd.connectionmgr.exceptions | type=reset | Counter | Общее количество исключений, вызванных отключением клиента без закрытия сокета. Включает все Telnet и HTTP подключения. |
| tsd.connectionmgr.exceptions | type=timeout | Counter | Общее количество исключений, вызванных таймаутом неактивности сокета, т.е. TSD не отправлял и не получал данные от сокета в течение заданного таймаута. Включает все Telnet и HTTP подключения. |
| tsd.connectionmgr.exceptions | type=unknown | Counter | Общее количество исключений с неизвестной причиной. Проверьте логи для получения подробностей. Включает все Telnet и HTTP подключения. |
| tsd.rpc.received | type=telnet | Counter | Общее количество полученных запросов telnet RPC. |
| tsd.rpc.received | type=http | Counter | Общее количество полученных запросов Http RPC. |
| tsd.rpc.received | type=http_plugin | Counter | Общее количество запросов Http RPC, полученных и обработанных плагином вместо встроенных API. (v2.2) |
| tsd.rpc.exceptions | Counter | Общее количество исключений, пойманных во время вызовов RPC. Они могут быть связаны с ошибками пользователя или ошибками. | |
| tsd.http.latency_50pct | type=all | Gauge | Время обработки HTTP запросов для 50-го перцентиля, в миллисекундах |
| tsd.http.latency_75pct | type=all | Gauge | Время обработки HTTP запросов для 75-го перцентиля, в миллисекундах |
| tsd.http.latency_90pct | type=all | Gauge | Время обработки HTTP запросов для 90-го перцентиля, в миллисекундах |
| tsd.http.latency_95pct | type=all | Gauge | Время обработки HTTP запросов для 95-го перцентиля, в миллисекундах |
| tsd.http.latency_50pct | type=graph | Gauge | Время обработки запросов для построения графиков для 50-го перцентиля, в миллисекундах |
| tsd.http.latency_75pct | type=graph | Gauge | Время обработки запросов для построения графиков для 75-го перцентиля, в миллисекундах |
| tsd.http.latency_90pct | type=graph | Gauge | Время обработки запросов для построения графиков для 90-го перцентиля, в миллисекундах |
| tsd.http.latency_95pct | type=graph | Gauge | Время обработки запросов для построения графиков для 95-го перцентиля, в миллисекундах |
| tsd.http.latency_50pct | type=gnuplot | Gauge | Время генерации графиков GnuPlot для 50-го перцентиля, в миллисекундах |
| tsd.http.latency_75pct | type=gnuplot | Gauge | Время генерации графиков GnuPlot для 75-го перцентиля, в миллисекундах |
| tsd.http.latency_90pct | type=gnuplot | Gauge | Время генерации графиков GnuPlot для 90-го перцентиля, в миллисекундах |
| tsd.http.latency_95pct | type=gnuplot | Gauge | Время генерации графиков GnuPlot для 95-го перцентиля, в миллисекундах |
| tsd.http.graph.requests | cache=disk | Counter | Общее количество запросов к графикам, удовлетворённых из кэша на диске. |
| tsd.http.graph.requests | cache=miss | Counter | Общее количество запросов к графикам, которые не были в кэше и потребовали извлечения из хранилища. |
| tsd.http.query.invalid_requests | Counter | Общее количество некорректных запросов данных к /api/query из-за ошибок пользователя (например, неправильный HTTP метод, недостающие параметры или использование метрик и тегов без UIDs). (v2.2) | |
| tsd.http.query.exceptions | Counter | Общее количество запросов данных к /api/query, которые вызвали исключение из-за плохого ввода пользователя или ошибки на уровне хранилища. См. логи для получения подробностей. (v2.2) | |
| tsd.http.query.success | Counter | Общее количество успешных запросов данных к /api/query. Обратите внимание, что они могут вернуть пустой результат. (v2.2) | |
| tsd.rpc.received | type=put | Counter | Общее количество put запросов для записи точек данных |
| tsd.rpc.errors | type=hbase_errors | Counter | Общее количество ошибок RPC, вызванных исключениями HBase. |
| tsd.rpc.errors | type=invalid_values | Counter | Общее количество ошибок RPC, вызванных некорректными put значениями из запросов пользователя (например, строка вместо числа). |
| tsd.rpc.errors | type=illegal_arguments | Counter | Общее количество ошибок RPC, вызванных плохими данными от пользователя. |
| tsd.rpc.errors | type=socket_writes_blocked | Counter | Общее количество случаев, когда TSD не смог записать в сокет telnet из-за заполненного буфера. Если это происходит, скорее всего, наблюдается множество исключений. (v2.2) |
| tsd.rpc.errors | type=unknown_metrics | Counter | Общее количество ошибок RPC, вызванных попытками put метрики без назначенного UID. Это увеличивается только если автоматические метрики отключены. |
| tsd.uid.cache-hit | kind=metrics | Counter | Общее количество успешных запросов к кэшу для UIDs метрик. |
| tsd.uid.cache-miss | kind=metrics | Counter | Общее количество неудачных запросов к кэшу для UIDs метрик, которые потребовали обращения к хранилищу. |
| tsd.uid.cache-size | kind=metrics | Gauge | Текущее количество кэшированных UIDs метрик. |
| tsd.uid.ids-used | kind=metrics | Counter | Текущее количество назначенных UIDs метрик. (ПРИМЕЧАНИЕ: если включена генерация случайных UIDs для метрик, ids-used всегда будет 0) |
| tsd.uid.ids-available | kind=metrics | Counter | Текущее количество доступных UIDs метрик, уменьшается по мере назначения UIDs. (ПРИМЕЧАНИЕ: если включена генерация случайных UIDs для метрик, ids-used всегда будет 0) |
| tsd.uid.random-collisions | kind=metrics | Counter | Количество попыток повторного назначения UIDs метрик из-за коллизии с существующим UID. (v2.2) |
| tsd.uid.cache-hit | kind=tagk | Counter | Общее количество успешных запросов к кэшу для UIDs тегов. |
| tsd.uid.cache-miss | kind=tagk | Counter | Общее количество неудачных запросов к кэшу для UIDs тегов, которые потребовали обращения к хранилищу. |
| tsd.uid.cache-size | kind=tagk | Gauge | Текущее количество кэшированных UIDs тегов. |
| tsd.uid.ids-used | kind=tagk | Counter | Текущее количество назначенных UIDs тегов. |
| tsd.uid.ids-available | kind=tagk | Counter | Текущее количество доступных UIDs тегов, уменьшается по мере назначения UIDs. |
| tsd.uid.cache-hit | kind=tagv | Counter | Общее количество успешных запросов к кэшу для UIDs значений тегов. |
| tsd.uid.cache-miss | kind=tagv | Counter | Общее количество неудачных запросов к кэшу для UIDs значений тегов, которые потребовали обращения к хранилищу. |
| tsd.uid.cache-size | kind=tagv | Gauge | Текущее количество кэшированных UIDs значений тегов. |
| tsd.uid.ids-used | kind=tagv | Counter | Текущее количество назначенных UIDs значений тегов. |
| tsd.uid.ids-available | kind=tagv | Counter | Текущее количество доступных UIDs значений тегов, уменьшается по мере назначения UIDs. |
| tsd.jvm.ramfree | Gauge | Количество байтов, представленных как свободные, по методу Runtime.freeMemory() JVM. | |
| tsd.jvm.ramused | Gauge | Количество байтов, представленных как используемые, по методу Runtime.totalMemory() JVM. | |
| tsd.hbase.latency_50pct | method=put | Gauge | Время выполнения вызова Put для 50-го перцентиля, в миллисекундах. |
| tsd.hbase.latency_75pct | method=put | Gauge | Время выполнения вызова Put для 75-го перцентиля, в миллисекундах. |
| tsd.hbase.latency_90pct | method=put | Gauge | Время выполнения вызова Put для 90-го перцентиля, в миллисекундах. |
| tsd.hbase.latency_95pct | method=put | Gauge | Время выполнения вызова Put для 95-го перцентиля, в миллисекундах. |
| tsd.hbase.latency_50pct | method=scan | Gauge | Время выполнения вызова Scan для 50-го перцентиля, в миллисекундах. |
| tsd.hbase.latency_75pct | method=scan | Gauge | Время выполнения вызова Scan для 75-го перцентиля, в миллисекундах. |
| tsd.hbase.latency_90pct | method=scan | Gauge | Время выполнения вызова Scan для 90-го перцентиля, в миллисекундах. |
| tsd.hbase.latency_95pct | method=scan | Gauge | Время выполнения вызова Scan для 95-го перцентиля, в миллисекундах. |
| tsd.hbase.root_lookups | Counter | Общее количество выполненных корневых поисков клиентом. |
| tsd.hbase.meta_lookups | type=uncontended | Counter | Общее количество неконкурентных запросов к мета-таблице, выполненных клиентом |
| tsd.hbase.meta_lookups | type=contended | Counter | Общее количество конкурентных запросов к мета-таблице, выполненных клиентом |
| tsd.hbase.rpcs | type=increment | Counter | Общее количество запросов Increment, выполненных клиентом |
| tsd.hbase.rpcs | type=delete | Counter | Общее количество запросов Delete, выполненных клиентом |
| tsd.hbase.rpcs | type=get | Counter | Общее количество запросов Get, выполненных клиентом |
| tsd.hbase.rpcs | type=put | Counter | Общее количество запросов Put, выполненных клиентом |
| tsd.hbase.rpcs | type=rowLock | Counter | Общее количество запросов Row Lock, выполненных клиентом |
| tsd.hbase.rpcs | type=openScanner | Counter |
|
| tsd.hbase.rpcs | type=scan | Counter | Общее количество запросов Scan, выполненных клиентом. Они указывают на вызов scan->next(). |
| tsd.hbase.rpcs.batched | Counter | Общее количество пакетных запросов, отправленных клиентом | |
| tsd.hbase.flushes | Counter | Общее количество операций сброса, выполненных клиентом | |
| tsd.hbase.connections.created | Counter | Общее количество подключений, установленных клиентом к узлам региона | |
| tsd.hbase.nsre | Counter | Общее количество исключений No Such Region, перехваченных. Они могут возникнуть при сбое узла региона, его отключении или при разделении региона (?) | |
| tsd.hbase.rpcs.rpcs_delayed | Counter | Общее количество вызовов, задержанных из-за NSRE, которые впоследствии были успешно выполнены | |
| tsd.hbase.rpcs.region_clients.open | Counter | Общее количество подключений, открытых к узлам региона с момента запуска TSD. Если это число растёт, узлы региона могут сбоить и перезапускаться. (v2.2) | |
| tsd.hbase.rpcs.region_clients.idle_closed | Counter | Общее количество подключений к узлам региона, закрытых из-за бездействия. Это указывает на то, что с сервером какое-то время ничего не читалось и не записывалось, и TSD переподключится, когда потребуется. (v2.2) | |
| tsd.compaction.count | type=trivial | Counter | Общее количество тривиальных уплотнений, выполненных TSD |
| tsd.compaction.count | type=complex | Counter | Общее количество сложных уплотнений, выполненных TSD |
| tsd.compaction.duplicates | type=identical | Counter | Общее количество точек данных, обнаруженных во время уплотнения, которые были дубликатами в одно и то же время и с тем же значением. (v2.2) |
| tsd.compaction.duplicates | type=variant | Counter | Общее количество точек данных, обнаруженных во время уплотнения, которые были дубликатами в одно и то же время, но с другим значением. (v2.2) |
| tsd.compaction.queue.size | Gauge | Сколько строк данных в настоящее время находится в очереди для уплотнения. (v2.2) | |
| tsd.compaction.errors | type=read | Counter | Общее количество строк, которые не удалось прочитать из хранилища из-за какой-либо ошибки. (v2.2) |
| tsd.compaction.errors | type=put | Counter | Общее количество строк, которые не удалось перезаписать в хранилище из-за какой-либо ошибки. (v2.2) |
| tsd.compaction.errors | type=delete | Counter | Общее количество строк, которые не удалось удалить из хранилища старые нескомпонованные данные из-за какой-либо ошибки. (v2.2) |
| tsd.compaction.writes | type=read | Counter | Общее количество записей обратно в хранилище сжатых значений. (v2.2) |
| tsd.compaction.deletes | type=read | Counter | Общее количество вызовов удаления в хранилище для удаления старых данных, которые были сжаты. (v2.2) |
© 2010–2016 The OpenTSDB Authors
Licensed under the GNU LGPLv2.1+ and GPLv3+ licenses.
http://opentsdb.net/docs/build/html/user_guide/stats.html