BOSUN : 如何从 BOSUN 获得特定 Tag_key 的 Tag_values?

BOSUN : How to get Tag_values for a specific Tag_key from BOSUN?

我有一个 BOSUN 服务器 运行 配置为在 OPENTSDB 上运行。我每分钟使用 SCOLLECTOROPENTSDB 发送数据。我正在寻找的是一种获得给定 Tag_Key 和 [=37= 的所有可能 Tag_Values 的方法]Metric_Name 存在于 OPENTSDB.

例如假设我有,

metric: data.queue.capacity
tags: queue={queue1,queue2,queue3...}

我正在 OPENTSDB 中存储 Queues.This 条数据的容量。 我可以使用 query:

向 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. 它只有 returns 开始时间和结束时间之间的数据,所以如果队列名称说 queue_not在start_time和end_time之间没有度量点,不会 进来回复。
  2. 这给出了很多数据作为回应,我可以汇总但我不认为这个 是获取标签值的最佳方式。

我想要的是一个 API,我可以在其中给出 Metric_NameTag_Key 我应该得到一个 JSON 数据,其中 Tag_Values 存在于 OPENTSDB Metric_Name,Tag_Key.


经过搜索我找到了部分解决方案: BOSUN有API得到所有Tag_values,但只有那些通过BOSUN中继的指标。

API: /api/tagv/{tagk}/{metric}

这个 API 接受 Tag_keyMetric_Name 并且对于这个组合给出所有值Tag_Values.

eg: http://bosun-host:port/api/tagv/{tagk}/{metric}
response:
[
  "tag_value1",
  "tag_value2"
]

我仍然没有解决方案来获得 Tag_values 的指标,这些指标不是通过 BOSUN 中继的,而是直接OPENTSDB。 该解决方案可能不涉及 BOSUN 它也可能是 OPENTSDB API

就 Bosun 而言,将数据点中继到 Bosun 以获取该标签元数据是标准方式。您可以使用 tsdbrelay 以便将指标复制到 Bosun 但不会流经 Bosun(这样,如果 Bosun 重新启动或关闭,指标流就不会中断)。

使用 OpenTSDB 本身,您可以查看 into OpenTSDB Metadata - 但 Bosun 不使用 OpenTSDB 的此功能。