/api/search/lookup
Примечание
Доступно в версии 2.1
Запросы поиска используют таблицу метаданных или основную таблицу данных, чтобы определить, какие временные ряды связаны с заданным метрикой, именем тега, значением тега, парой тегов или их комбинацией. Например, если вы хотите узнать, какие метрики доступны для пары тегов host=web01, вы можете выполнить поиск, чтобы узнать. Для выполнения запросов поиска не требуется установка плагина поиска.
Примечание
Поиск выполняется по таблице tsdb-meta. Для получения данных из поиска необходимо включить создание метаданных в реальном времени или выполнить metasync с помощью команды uid только в командной строке: search
Глаголы
- GET
- POST
Запросы
Параметры, используемые конечной точкой поиска, включают:
| Имя | Тип данных | Обязательно | Описание | По умолчанию | QS | RW | Пример |
|---|---|---|---|---|---|---|---|
| query | Строка | Обязательно | Запрос поиска, определённый ниже. | m | tsd.hbase.rpcs{type=*} | ||
| useMeta | Булево | Необязательно | Использовать таблицу метаданных или таблицу данных. Таблица данных будет значительно медленнее. | False | use_meta | True | |
| limit | Целое число | Необязательно | Максимальное количество элементов, возвращаемых в наборе результатов. В настоящее время ограничение игнорируется для запросов поиска. | 25 | 100 | ||
| startIndex | Целое число | Необязательно | Игнорируется для запросов поиска, всегда по умолчанию. | 0 | 10 |
Запросы поиска
Запрос поиска состоит как минимум из одной метрики, имени тега (tagk) или значения тега (tagv). Каждое значение должно быть буквальным именем в таблице UID. Если данное имя не может быть разрешено в UID, будет возвращена ошибка. В запросе может быть только одна метрика, но может быть несколько tagk, tagv или пар тегов.
Обычно теги предоставляются в формате <tagk>=<tagv> и значение требуется по обе стороны знака равенства. Однако для запросов поиска одно значение может быть звёздочкой *, например <tagk>=* или *=<tagv>. В этих случаях звёздочка действует как символ подстановки, означающий, что будут возвращены все временные ряды с заданным tagk или tagv. Например, если мы выполним запрос для host=*, то мы получим все временные ряды с host tagk, такими как host=web01 и host=web02.
Для сложных запросов с несколькими значениями каждый тип AND'd с другими типами и OR'd с собственным типом.
<metric> AND (<tagk1>=[<tagv1>] OR <tagk1>=[<tagv2>]) AND ([<tagk2>]=<tagv3> OR [<tagk2>]=<tagv4>)
Например, запрос tsd.hbase.rpcs{type=*,host=tsd1,host=tsd2,host=tsd3} вернёт только временные ряды с метрикой tsd.hbase.rpcs и type tagk с любым значением и host тегом со значениями tsd1, tsd2 или tsd3. В отличие от запроса данных, вы можете указать несколько tagk с одинаковым именем, как показано в примере выше. Знаки подстановки всегда имеют приоритет, поэтому, если ваш запрос выглядел как tsd.hbase.rpcs{type=*,host=tsd1,host=tsd2,host=*}, запрос будет интерпретирован как tsd.hbase.rpcs{type=*,host=*}.
Для получения списка всех временных рядов со значением определённого тега, например, конкретного хоста, можно выполнить запрос, такой как {*=web01}, который вернёт все временные ряды со значением тега web01. Это может быть полезно при отладке проблем с именами тегов, таких как некоторые ряды с host=web01 или server=web01.
Пример запроса
Строка запроса:
http://localhost:4242/api/search/lookup?m=tsd.hbase.rpcs{type=*}
POST:
Запросы JSON следуют формату запроса поиска на странице /api/search. Ограничения и начальные значения, обратите внимание, что теги предоставляются как список объектов. Значение для key должно быть tagk, а значение для value должно быть tagv или символом подстановки.
{
"metric": "tsd.hbase.rpcs",
"tags":[
{
"key": "type",
"value": "*"
}
]
}
Ответ
В зависимости от вызываемой конечной точки вывод будет немного отличаться. Однако общие поля включают:
| Имя | Тип данных | Описание | Пример |
|---|---|---|---|
| type | Строка | Тип отправленного запроса, т.е. вызываемая конечная точка. | LOOKUP |
| query | Строка | Игнорируется для запросов поиска. | |
| limit | Целое число | Максимальное количество элементов, возвращаемых в наборе результатов. В настоящее время ограничение игнорируется для запросов поиска. | 25 |
| startIndex | Целое число | Игнорируется для запросов поиска, всегда по умолчанию. | 0 |
| metric | Строка | Метрика, используемая для поиска. | * |
| tags | Массив | Список пар тегов, используемых для поиска. Может быть пустым списком. | [ ] |
| time | Целое число | Время выполнения запроса в миллисекундах. | 120 |
| totalResults | Целое число | Общее количество результатов, соответствующих запросу. | 1024 |
| results | Массив | Набор результатов с TSUID, метрикой и тегами для каждого ряда. | См. ниже |
Эта конечная точка почти всегда возвращает 200 с содержанием тела. Если запрос не соответствует ни одному результату, поле results будет пустым массивом, а totalResults будет 0. При возникновении ошибки, например, при невозможности разрешения метрики или имени тега в UID, будет возвращена ошибка.
Пример ответа
{
"type": "LOOKUP",
"metric": "tsd.hbase.rpcs",
"tags":[
{
"key": "type",
"value": "*"
}
]
"limit": 3,
"time": 565,
"results": [
{
"tags": {
"fqdn": "web01.mysite.com"
},
"metric": "app.apache.connections",
"tsuid": "0000150000070010D0"
},
{
"tags": {
"fqdn": "web02.mysite.com"
},
"metric": "app.apache.connections",
"tsuid": "0000150000070010D5"
},
{
"tags": {
"fqdn": "web03.mysite.com"
},
"metric": "app.apache.connections",
"tsuid": "0000150000070010D6"
}
],
"startIndex": 0,
"totalResults": 9688066
}
© 2010–2016 The OpenTSDB Authors
Licensed under the GNU LGPLv2.1+ and GPLv3+ licenses.
http://opentsdb.net/docs/build/html/api_http/search/lookup.html