我使用opentsdb来保存我的时间序列数据。在每个数据点输入中,我必须先获得20个数据点值。但是,我有大量的指标,我不能多次调用查询opentsdb api。如何减少openTSDB中的查询数量?
答案 0 :(得分:2)
据我所知,您无法将不同的指标聚合到一个结果中。但我建议两种解决方案:
您可以在一次调用中添加多个指标查询。如果您使用HTTP API端点你可以这样做:
http://otsdb:4242/api/query?start=15m-ago&m=avg:metric1{tag1=a}&m=avg:metric2{tag2=b}
您可以获得具有相同开始(结束)日期/时间的所有查询的结果。但是有了多个指标,不要忘记它需要更长的时间......
重新定义您的时间序列。我不知道您的数据的任何细节,但如果您要存储和使用数据,您还应该考虑使用 - 我将使用哪些查询?多常?什么是最常见的数据访问?等等...
这也是OpenTSDB文档[1]所建议的:
基数也会大大影响查询速度,因此请考虑您经常执行的查询并优化您的命名架构。
因此,我建议使用标签来克服多个指标的问题。但正如我所提到的,我不了解您的架构,但OpenTSDB对标签的功能更强大 - 还有很多examples和filtering options。
编辑1:
从OpenTSDB 2.3版本开始,还有表达式api:http://opentsdb.net/docs/build/html/api_http/query/exp.html
您应该能够一起处理多个指标查询(但我从未将其用于任何查询)。