BOSUN: Как получить Tag_values ​​для конкретного Tag_key из BOSUN? - PullRequest
0 голосов
/ 02 мая 2018

У меня работает сервер BOSUN , настроенный для работы на OPENTSDB . Я отправляю данные на OPENTSDB , используя SCOLLECTOR каждую минуту. То, что я ищу, - это способ получить все возможные Tag_Values ​​ для данного 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",...}
.
.
.

Возвращаемый результат группируется по разным значениям очереди. Трудно использовать вышеуказанные данные ответов для получения всех возможных имен очередей, потому что:

  1. Он возвращает данные только между временем начала и времени окончания, поэтому, если имя очереди скажет queue_not не имеет метрической точки между start_time и end_time, она не будет прийти в ответ.
  2. Это дает много данных в ответ, я могу агрегировать, но я не думаю, что это лучший способ получить значения тегов.

Мне нужен API, где я могу дать Metric_Name и Tag_Key , и я должен получить данные JSON, имеющие все возможные Tag_Values ​​, присутствующие в OPENTSDB для этого Metric_Name , Tag_Key .


После поиска я нашел частичные решения: BOSUN есть API для получения всех значений тегов , но только для тех метрик, которые передаются через 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 Ответ

0 голосов
/ 02 мая 2018

Что касается Bosun, то передача точек данных в Bosun для метаданных этого тега является стандартным способом. Вы можете использовать tsdbrelay , чтобы метрики копировались в Bosun, но не проходили через Bosun (таким образом, если Bosun перезапускается или не работает, поток метрик не прерывается).

С самим OpenTSDB вы можете заглянуть в метаданные OpenTSDB - но Bosun't не использует эту функцию OpenTSDB.

...