BOSUN: Как получить Tag_values для конкретного Tag_key из BOSUN?
У меня работает сервер BOSUN, настроенный для работы на OPENTSDB. Я отправляю данные в OPENTSDB, используя SCOLLECTOR каждую минуту. То, что я ищу, - это способ получить все возможные значения Tag_Value для данного Tag_Key и Metric_Name, который присутствует в OPENTSDB.
Например, предположим, у меня есть,
metric: data.queue.capacity
tags: queue={queue1,queue2,queue3...}
Я храню емкость для нескольких очередей. Эти данные находятся в OPENTSDB. Я могу запросить BOSUN значения metric=data.queue.capacity, используя запрос:
q("sum:data.queue.capacity{queue=*}{}","start_time","end_time")
который дает вывод:
{queue:queue1} :{"timestamp1":"value1","timestamp2":"value2",...}
{queue:queue2} :{"timestamp1":"value1","timestamp2":"value2",...}
.
.
.
Возвращаемый результат группируется по разным значениям очереди. Приведенные выше данные ответа трудно использовать для получения всех возможных имен очередей, поскольку:
- Он возвращает данные только между временем начала и временем окончания, поэтому, если имя очереди скажет, что queue_not не имеет метрической точки между start_time и end_time, оно не появится в ответе.
- Это дает много данных в ответ, я могу агрегировать, но я не думаю, что это лучший способ получить значения тегов.
То, что я хочу, - это API, где я могу дать Metric_Name и Tag_Key, и я должен получить данные JSON, имеющие все возможные значения Tag_Values в OPENTSDB для этого Metric_Name, Tag_Key.
После поиска я нашел частичные решения: у BOSUN есть API для получения всех значений Tag_value, но только для тех метрик, которые передаются через BOSUN.
API: / api / tagv / {tagk} / {metric}
Этот API принимает Tag_key и Metric_Name и для этой комбинации дает все значения Tag_Values.
eg: http://bosun-host:port/api/tagv/{tagk}/{metric}
response:
[
"tag_value1",
"tag_value2"
]
Тем не менее у меня нет решения, чтобы получить Tag_values для метрики, которые не передаются через BOSUN, а напрямую в OPENTSDB. Решение может не включать BOSUN, это также может быть OPENTSDB API.
1 ответ
Что касается Bosun, то передача точек данных в Bosun для метаданных этого тега является стандартным способом. Вы можете использовать tsdbrelay, чтобы метрики копировались в Bosun, но не проходили через Bosun (таким образом, если Bosun перезапускается или не работает, поток метрик не прерывается).
С помощью OpenTSDB вы можете просматривать метаданные OpenTSDB, но Bosun не использует эту функцию OpenTSDB.