我正在运行 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值分组。 很难使用上面的响应数据来获取所有可能的队列名称,因为:
我想要的是一个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。
答案 0 :(得分:0)
就Bosun而言,将数据点传递给Bosun的标签元数据是标准方式。您可以使用tsdbrelay,以便将度量标准复制到Bosun,但不会流经Bosun(这样如果Bosun重新启动或关闭,则度量标准流不会中断)。
使用OpenTSDB本身你可以看into OpenTSDB Metadata - 但是Bosun不会使用OpenTSDB的这个功能。