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

时间:2018-05-02 06:55:15

标签: opentsdb bosun scollector

我正在运行 BOSUN 服务器,该服务器配置为在 OPENTSDB 上运行。我每分钟都使用 SCOLLECTOR OPENTSDB 发送数据。我正在寻找的方法是为 OPENTSDB中存在的 Tag_Key Metric_Name 提供所有可能的 Tag_Values 强>

例如假设我有,

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值分组。 很难使用上面的响应数据来获取所有可能的队列名称,因为:

  1. 它只在开始时间和结束时间之间返回数据,所以如果队列名称说的话 queue_not在start_time和end_time之间没有度量标准点,它不会 进来回应。
  2. 这给了很多数据作为回应,我可以聚合,但我不这么认为 是获得Tag值的最佳方式。
  3. 我想要的是一个API,我可以提供 Metric_Name Tag_Key ,我应该获得一个JSON数据,其中包含所有可能的 Tag_Values OPENTSDB Metric_Name Tag_Key

    搜索后我找到了部分解决方案: BOSUN 有API可以获取所有 Tag_values ,但仅适用于通过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 :(得分:0)

就Bosun而言,将数据点传递给Bosun的标签元数据是标准方式。您可以使用tsdbrelay,以便将度量标准复制到Bosun,但不会流经Bosun(这样如果Bosun重新启动或关闭,则度量标准流不会中断)。

使用OpenTSDB本身你可以看into OpenTSDB Metadata - 但是Bosun不会使用OpenTSDB的这个功能。