Spec-Zone.ru › OpenTSDB

Фильтры

В OpenTSDB 2.2 были введены фильтры по ключу и значению тега. Это облегчает извлечение только необходимых данных из хранилища. Фреймворк фильтров является подключаемым, что позволяет интегрироваться с внешними системами, такими как системы управления активами или системами предоставления услуг.

Разрешается использование нескольких фильтров по одному и тому же ключу тега, и при обработке они связываются операцией И. Например, если у нас есть два фильтра host=literal_or(web01) и host=literal_or(web02) , запрос всегда вернёт пустой результат. Если для одного и того же ключа тега включено несколько фильтров, и один из них использует группировку, а другой — нет, то группировка будет фактически включена для всех фильтров по этому ключу тега.

Обратите внимание, что некоторые типы фильтров могут привести к более медленной работе запросов, например, фильтры с регулярными выражениями и подстановкой символов. Перед извлечением данных из хранилища фильтры обрабатываются для создания базы данных фильтров на основе идентификаторов (UID), поэтому использование чувствительного к регистру фильтра «литеральный или» всегда быстрее, чем использование регулярных выражений, так как мы можем преобразовать строки в идентификаторы (UID) и отправить их в систему хранения для фильтрации. В противном случае, если вы запрашиваете регулярные выражения или подстановку символов с префиксом, постфиксом или инфиксной фильтрацией, система TSD должна извлечь все строки из хранилища с UID ключа тега, затем для каждой уникальной строки преобразовать UID обратно в строку и применить фильтр к результатам. Также наборы фильтров с большим списком литералов будут обрабатываться после извлечения из хранилища, чтобы избежать создания громоздкого фильтра для обработки в хранилище. Этот лимит по умолчанию равен 4096 и может быть настроен с помощью параметра tsd.query.filter.expansion_limit.

Встроенные фильтры

literal_or

Принимает одно значение литерала или список значений, разделённых символом «|», и возвращает все временные ряды, соответствующие результатам, на основе чувствительности к регистру. Это очень эффективный фильтр, так как он может преобразовать строки в идентификаторы (UID) и отправить их в слой хранения для предварительной фильтрации.

Примеры

literal_or(web01|web02|web03) literal_or(web01)

ilteral_or

То же самое, что и literal_or, но нечувствительно к регистру. Обратите внимание, что это не эффективно, как «литеральный или», так как необходимо обработать все строки из хранилища после извлечения.

not_literal_or

Чувствительный к регистру literal_or фильтр, возвращающий временные ряды, которые НЕ соответствуют заданному списку значений. Эффективен, так как может быть предварительно обработан хранилищем.

not_iliteral_or

Нечувствительный к регистру not_literal_or фильтр.

wildcard

Предоставляет чувствительную к регистру фильтрацию по постфиксу, префиксу, инфиксу и мульти-инфиксу. Символ подстановки — звездочка (*). Можно использовать несколько символов подстановки. Если указана только звездочка, фильтр фактически возвращает все временные ряды, которые включают ключ тега (и является эффективным фильтром, который может быть предварительно обработан).

Примеры wildcard(*mysite.com) wildcard(web*) wildcard(web*mysite.com) wildcard(web*mysite*) wildcard(*)

iwildcard

То же самое, что и wildcard, но нечувствительно к регистру.

regexp

Фильтрация с использованием совместимых с POSIX регулярных выражений после извлечения данных из хранилища. Фильтр использует встроенную в Java операцию с регулярными выражениями. Следует учитывать необходимость экранирования специальных символов в зависимости от используемого метода запроса.

Примеры regexp(web.*) regexp(web[0-9].mysite.com)

Плагины

По мере добавления разработчиками плагинов, они будут здесь перечислены.

Для разработки плагина просто расширьте класс net.opentsdb.query.filter.TagVFilter, создайте JAR-файл в соответствии с документацией по Плагинам и поместите его в каталог плагинов. При запуске TSD будет искать плагин и загружать его. Если в реализации есть ошибка, TSD не запустится и запишет исключение.

© 2010–2016 The OpenTSDB Authors
Licensed under the GNU LGPLv2.1+ and GPLv3+ licenses.
http://opentsdb.net/docs/build/html/user_guide/query/filters.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API