/api/search
Этот конечный пункт предоставляет базовый способ поиска метаданных OpenTSDB. Поиск может выполняться в таблице tsdb-meta при её включении. Дополнительно можно установить плагин поиска для отправки и получения информации из внешней индексной службы поиска, такой как Elastic Search. Каждый плагин поиска должен реализовывать различные части этого конечного пункта и возвращать данные в согласованном формате. Тип искомого и возвращаемого объекта зависит от выбранного конечного пункта.
Примечание
Если плагин не настроен или не включён, конечные пункты, отличные от /api/search/lookup, вернут исключение.
Конечные пункты API поиска
- /api/search/lookup
- /api/search/tsmeta - Ответ TSмета
- /api/search/tsmeta_summary - Ответ TSмета_резюме
- /api/search/tsuids - Ответ TSUIDS
- /api/search/uidmeta - Ответ UIDMETA
- /api/search/annotation - Ответ Аннотация
Глаголы
- GET
- POST
Запросы
Параметры, используемые конечным пунктом поиска, включают:
| Имя | Тип данных | Требуется | Описание | Значение по умолчанию | QS | RW | Пример |
|---|---|---|---|---|---|---|---|
| query | Строка | Необязательно | Строковое выражение для запроса к поисковой системе. Оно будет обработано системой или плагином для выполнения фактического поиска. Допустимые значения зависят от плагина. Игнорируется для запросов lookups. | query | name:sys.cpu.* | ||
| limit | Целое число | Необязательно | Ограничивает количество возвращаемых результатов на запрос, чтобы не перегружать TSD или поисковую систему. Допустимые значения зависят от плагина. Игнорируется для запросов lookups. | 25 | limit | 100 | |
| startIndex | Целое число | Необязательно | Используется в сочетании со значением limit, чтобы просматривать результаты по страницам. Допустимые значения зависят от плагина. Игнорируется для запросов lookups. | 0 | start_index | 42 | |
| metric | Строка | Необязательно | Имя метрики или символ подстановки для запросов lookups | * | metric | tsd.hbase.rpcs | |
| tags | Массив | Необязательно | Один или несколько пар ключ-значение с именами тегов и/или значениями тегов для запросов lookups. Смотрите /api/search/lookup | tags | См. /api/search/lookup |
Пример запроса
Строка запроса:
http://localhost:4242/api/search/tsmeta?query=name:*&limit=3&start_index=0
POST:
{
"query": "name:*",
"limit": 4,
"startIndex": 5
}
Ответ
В зависимости от вызова конечного пункта, вывод будет немного отличаться. Однако общие поля включают:
| Имя | Тип данных | Описание | Пример |
|---|---|---|---|
| type | Строка | Тип отправленного запроса, т.е. вызванный конечный пункт. Будет одним из перечисленных выше конечных пунктов. | TSMETA |
| query | Строка | Отправленная строка запроса. Может быть изменена плагином. | name:sys.cpu.* |
| limit | Целое число | Максимальное количество элементов, возвращаемых в наборе результатов. Обратите внимание, что фактическое возвращаемое количество может быть меньше лимита. | 25 |
| startIndex | Целое число | Начальный индекс текущего набора результатов, как указано в запросе | 0 |
| metric | Строка | Метрика, используемая для поиска. |
|
| tags | Массив | Список пар тегов, используемых для запросов lookups. Может быть пустым списком. | [ ] |
| time | Целое число | Время выполнения запроса в миллисекундах | 120 |
| totalResults | Целое число | Общее количество результатов, соответствующих запросу | 1024 |
| results | Массив | Набор результатов. Формат зависит от запрошенного конечного пункта. | См. ниже |
Этот конечный пункт почти всегда возвращает 200 с телом содержимого. Если запрос не соответствует результатам, поле results будет пустым массивом, и totalResults будет равно 0. При возникновении ошибки, например, при отключении или отсутствии настройки плагина, будет возвращено исключение.
Ответ TSмета
Конечный пункт TSMeta возвращает список соответствующих объектов TSMeta.
{
"type": "TSMETA",
"query": "name:*",
"metric": "*",
"tags": [],
"limit": 2,
"time": 675,
"results": [
{
"tsuid": "0000150000070010D0",
"metric": {
"uid": "000015",
"type": "METRIC",
"name": "app.apache.connections",
"description": "",
"notes": "",
"created": 1362655264,
"custom": null,
"displayName": ""
},
"tags": [
{
"uid": "000007",
"type": "TAGK",
"name": "fqdn",
"description": "",
"notes": "",
"created": 1362655264,
"custom": null,
"displayName": ""
},
{
"uid": "0010D0",
"type": "TAGV",
"name": "web01.mysite.com",
"description": "",
"notes": "",
"created": 1362720007,
"custom": null,
"displayName": ""
}
],
"description": "",
"notes": "",
"created": 1362740528,
"units": "",
"retention": 0,
"max": 0,
"min": 0,
"displayName": "",
"dataType": "",
"lastReceived": 0,
"totalDatapoints": 0
},
{
"tsuid": "0000150000070010D5",
"metric": {
"uid": "000015",
"type": "METRIC",
"name": "app.apache.connections",
"description": "",
"notes": "",
"created": 1362655264,
"custom": null,
"displayName": ""
},
"tags": [
{
"uid": "000007",
"type": "TAGK",
"name": "fqdn",
"description": "",
"notes": "",
"created": 1362655264,
"custom": null,
"displayName": ""
},
{
"uid": "0010D5",
"type": "TAGV",
"name": "web02.mysite.com",
"description": "",
"notes": "",
"created": 1362720007,
"custom": null,
"displayName": ""
}
],
"description": "",
"notes": "",
"created": 1362882263,
"units": "",
"retention": 0,
"max": 0,
"min": 0,
"displayName": "",
"dataType": "",
"lastReceived": 0,
"totalDatapoints": 0
}
],
"startIndex": 0,
"totalResults": 9688066
}
Ответ TSмета_резюме
Конечный пункт TSMeta Summary возвращает только основную информацию, связанную со временным рядом, включая TSUID, имя метрики и теги. Поиск выполняется по тому же индексу, что и запрос TSMeta, но возвращает подмножество данных.
{
"type": "TSMETA_SUMMARY",
"query": "name:*",
"metric": "*",
"tags": [],
"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
}
Ответ TSUIDS
Конечный пункт TSUIDs возвращает список TSUID, соответствующих запросу. Поиск выполняется по тому же индексу, что и запрос TSMeta, но возвращает подмножество данных.
{
"type": "TSUIDS",
"query": "name:*",
"metric": "*",
"tags": [],
"limit": 3,
"time": 517,
"results": [
"0000150000070010D0",
"0000150000070010D5",
"0000150000070010D6"
],
"startIndex": 0,
"totalResults": 9688066
}
Ответ UIDMETA
Конечный пункт UIDMeta возвращает список объектов UIDMeta, соответствующих запросу.
{
"type": "UIDMETA",
"query": "name:*",
"metric": "*",
"tags": [],
"limit": 3,
"time": 517,
"results": [
{
"uid": "000007",
"type": "TAGK",
"name": "fqdn",
"description": "",
"notes": "",
"created": 1362655264,
"custom": null,
"displayName": ""
},
{
"uid": "0010D0",
"type": "TAGV",
"name": "web01.mysite.com",
"description": "",
"notes": "",
"created": 1362720007,
"custom": null,
"displayName": ""
},
{
"uid": "0010D5",
"type": "TAGV",
"name": "web02.mysite.com",
"description": "",
"notes": "",
"created": 1362720007,
"custom": null,
"displayName": ""
}
],
"startIndex": 0,
"totalResults": 9688066
}
Ответ Аннотация
Конечный пункт Annotation возвращает список объектов Annotation, соответствующих запросу.
{
"type": "ANNOTATION",
"query": "description:*",
"metric": "*",
"tags": [],
"limit": 25,
"time": 80,
"results": [
{
"tsuid": "000001000001000001",
"description": "Testing Annotations",
"notes": "These would be details about the event, the description is just a summary",
"custom": {
"owner": "jdoe",
"dept": "ops"
},
"endTime": 0,
"startTime": 1369141261
}
],
"startIndex": 0,
"totalResults": 1
}
© 2010–2016 The OpenTSDB Authors
Licensed under the GNU LGPLv2.1+ and GPLv3+ licenses.
http://opentsdb.net/docs/build/html/api_http/search/index.html