OpenTSDB的metric查询分析

2023-12-23 19:58
文章标签 分析 查询 opentsdb metric

本文主要是介绍OpenTSDB的metric查询分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OpenTSDB查询端口/api/query的参数分析

  • /api/query的查询参数
  • OpenTSDB的子查询subQuery参数
  • 按metric查询的格式
  • 依据参数m的值进行分析
  • 分析OpenTSDB源码如何处理查询请求

/api/query的查询参数

OpenTSDB的查询参数列表

OpenTSDB的子查询subQuery参数

子查询参数列表

如上图所示,OpenTSDB的查询方式有两种,一种是按metric查询,子查询参数以m开头,一种是按TSUID查询,子查询参数以tsuid开头。这里本文仅讨论按metric查询的方式 。

按metric查询的格式

之前说这是BNF,其实不是BNF。只是一个简单的参数m以及后面带的值。

m=<aggregator>:
[rate[{counter[,<counter_max>[,<reset_value>]]]}:]
[<down_sampler>:]
[percentiles\[<p1>, <pn>\]:]
[explicit_tags:]
<metric_name>
[{<tag_name1>=<grouping filter>[,...<tag_nameN>=<grouping_filter>]}]
[{<tag_name1>=<non grouping filter>[,...<tag_nameN>=<non_grouping_filter>]}]

看过该BNF之后,再回头看上图的子查询参数。我们知道,除了aggregator和metric是必须项之外(因为都是用的尖括号,在BNF中表示必选),其余的都是可选的。可知BNF与参数定义完全符合。

此处给一个按metric查询的不完整的例子如下:
http://localhost:4242/api/query?start=1h-ago&m=sum:rate:proc.stat.cpu{host=foo,type=idle}
该例没有包含metric的完整情况,但是也是合法的,因为它遵从上述BNF的规定。

依据参数m的值进行分析

  1. aggregator是必选项。其取值是字符串类型,取值如下:
    OepnTSDB聚合器列表
  2. rate是可选项。其取值是布尔类型,取值为truefalse
  3. rateOptions是可选项。其取值是Map类型,取值如下。
    rateOptions的取值列表
    可知其取值为{counter[,<counter_max>[,<reset_value>[,<dropResets>]]]]}。此处跟上述BNF对比,可知上述官网给的BNF漏了一项dropResets
  4. downsample是可选项。其取值是字符串类型。取值如下。
    降采样BNF及示例
  5. percentiles是可选项。其数值是列表类型。取值例如percentiles[99.9,75.0]。说明如下。
    Percentiles说明
  6. explicitTags 是可选项。其取值是布尔类型。取值为truefalse
  7. metric是必选项。其取值是字符串类型。取值根据具体的metric名而定。
  8. filters是可选项。其取值是列表类型。取值例如{host=wildcard(web*)}{colo=regexp(sjc.*)}。其说明如下。
    filters说明
    其中type的取值是 /api/config/filters返回的那些过滤器类型。比如iliteral_orwildcardliteral_oriwildcardregexp等。
  9. tags是可选项。其取值是Map类型。取值例如{host=foo,type=idle}

分析OpenTSDB源码如何处理查询请求

详情请见:https://blog.csdn.net/sinat_32336967/article/details/91046540

这篇关于OpenTSDB的metric查询分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/529266

相关文章

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复