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

如何对Prometheus指标标签值执行算术运算计算文件吞吐量

基于Prometheus标签计算单文件吞吐量的解决方案

核心结论

完全可以获取单个文件对应的标签值并执行算术运算,关键是要将字符串类型的标签转换为数值,同时通过分组保留所需标签。

分步查询实现

根据你的需求,我们可以通过以下PromQL语句完成计算:

  1. 按文件汇总处理时长(保留length标签)
    同一个文件的length标签值一致,因此分组时同时指定fileName和length,确保后续能获取到对应文件的长度标签:

    sum by(fileName, length) (avg_treatment_duration{})
    
  2. 计算单文件吞吐量(length与总时长的比值)
    由于length是字符串类型标签,需用strtofloat()函数转换为数值后再执行除法运算:

    strtofloat(length) / sum by(fileName, length) (avg_treatment_duration{})
    

    该语句会输出每个文件的吞吐量(文件大小/总处理时长,即单位时间处理的数据量)。

  3. 对所有文件的吞吐量取平均值
    在外层嵌套avg()函数即可实现:

    avg( strtofloat(length) / sum by(fileName, length) (avg_treatment_duration{}) )
    

对你现有查询的修正

你之前的查询avg(sum by(fileName) (avg_treatment_duration{}))仅计算了各文件总处理时长的平均值,未结合length标签进行吞吐量计算,无法满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 13:30:18