You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询OpenTSDB查询语法规范及Bosun查询语句元素解析

OpenTSDB(Bosun)查询语法详解

关于语法规范文档

OpenTSDB官方文档偏概念介绍,而你使用的Bosun在自身文档中提供了明确的查询语法规范,涵盖了结构、函数、过滤规则等细节。

示例查询拆解

针对你给出的查询语句:

sum:30s-avg-zero:rate{counter}:my.metric.name{tagA=*}{tagB=valueB,tagC=valueC}

按冒号分隔的各元素含义如下:

  • sum:全局聚合函数,对后续处理后的数据进行求和聚合,常见同类函数还有avg、min、max等。
  • 30s-avg-zero:降采样规则,格式为[时间窗口]-[降采样函数]-[填充策略]:
    • 30s:降采样的时间粒度,每30秒将窗口内的数据聚合为一个点
    • avg:降采样时的聚合逻辑,对窗口内数据取平均值
    • zero:无数据时的填充策略,用0填充缺失的时间点,其他可选策略如null(不填充)、last(用前一个有效值填充)
  • rate{counter}:转换函数,rate用于将计数器类型的指标转换为每秒速率(处理计数器递增、回零重置的场景),{counter}是函数参数,声明该指标为计数器类型。
  • my.metric.name:要查询的目标时间序列指标名称。
  • {tagA=*}、{tagB=valueB,tagC=valueC}:标签过滤规则,多组过滤为AND关系:
    • {tagA=*}:匹配tagA为任意值的序列(*是通配符)
    • {tagB=valueB,tagC=valueC}:同时匹配tagB=valueB且tagC=valueC的序列

核心疑问解答

  1. 冒号分隔元素的固定顺序
    Bosun查询语法的固定结构为:
[聚合函数]:[降采样规则]:[转换函数(可选)]:[指标名称][标签过滤组...]

转换函数是可选项,若无需对指标做转换(比如gauge类型指标),可省略该部分,例如:avg:1m-last:my.gauge.metric{tag=value}

  1. {}的具体用法
  • 函数参数传递:如rate{counter},用于给转换/聚合函数指定参数,明确指标类型或函数行为。
  • 标签过滤:用于筛选目标时间序列,格式为{tagKey=tagValue, tagKey2=tagValue2},多个标签间为AND关系;支持多种匹配规则:
    • 通配符:*匹配任意值,如{tag=*}
    • 取反:!排除指定值,如{tag!=value}
    • 正则匹配:~后跟正则表达式,如{tag=~^prod.*}
  • Bosun支持多组标签过滤,多组间为AND关系,可拆分复杂过滤条件,提升可读性。

内容的提问来源于stack exchange,提问作者Eric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 08:47:32