You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Graphite/Grafana中统计状态变更时长小于20秒的占比

实现Graphite数据的时长达标占比Single Stat面板

没问题,我来帮你一步步配置这个展示时长小于20秒占比的Single Stat面板,完全适配你的场景!

核心Graphite查询公式

首先要构建正确的Graphite查询,用来计算达标(<20000ms)数据点的占比。针对你的metric格式,查询语句如下:

100 * (count(below(myProjectName.FromStateToState.duration, 20000)) / count(myProjectName.FromStateToState.duration))

公式拆解

  • below(myProjectName.FromStateToState.duration, 20000):筛选出所有时长小于20秒(20000ms)的数据点
  • count(...):分别统计达标数据点的数量,以及所有数据点的总数量
  • 乘以100是为了把比例转换成直观的百分比格式

Grafana Single Stat面板配置步骤

  1. 新建面板:在Grafana中添加一个新的「Single Stat」面板,选择你的Graphite数据源
  2. 配置Metrics:在「Metrics」标签页,把上面的查询语句粘贴进去。如果需要给查询起个友好名字,可以用alias函数包装:
    alias(100 * (count(below(myProjectName.FromStateToState.duration, 20000)) / count(myProjectName.FromStateToState.duration)), "时长<20秒占比")
    
  3. 调整面板选项:切换到「Panel Options」标签页:
    • 「Value」选择「Current」(展示当前时间窗口的占比)
    • 「Unit」选择「Percent (%)」,让数值以百分比形式显示
    • (可选)设置阈值规则,比如占比≥90%显示绿色,<70%显示红色,根据你的业务需求调整
    • (可选)添加前缀/后缀文本,比如前缀填「达标占比:」,让面板更易读

你的示例数据验证

用你给出的示例数据:10000ms、15000ms、21000ms、25000ms,总共有4个数据点,其中2个达标,代入查询后会得到100*(2/4)=50%,面板会显示50%,完全符合预期。

扩展场景示例

如果你的项目有多个状态转换的metric(比如myProjectName.FromAtoB.durationmyProjectName.FromBtoC.duration),可以用通配符一次性统计所有状态转换的达标占比:

100 * (count(below(myProjectName.*.duration, 20000)) / count(myProjectName.*.duration))

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

火山引擎 最新活动