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

能否用Victoria Metrics Gauge监控处理中请求?附Prometheus Go客户端原实现

使用Victoria Metrics metrics包实现处理中请求统计

完全可以通过Victoria Metrics的metrics包实现你需要的功能,它提供的Gauge类型支持Inc()和Dec()方法,用法和Prometheus Go客户端高度一致。

代码实现示例

首先初始化Gauge指标:

import "github.com/VictoriaMetrics/metrics"

type Middleware struct {
    gauge *metrics.Gauge
}

func NewMiddleware() *Middleware {
    return &Middleware{
        // 定义指标名称,和你之前的Prometheus指标名保持一致
        gauge: metrics.NewGauge("service_name_processing"),
    }
}

然后在中间件中使用,逻辑和你原来的代码几乎完全相同:

func (m *Middleware) ServeHTTP(w http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
    m.gauge.Inc()
    defer m.gauge.Dec()
    next.ServeHTTP(w, r)
}

Grafana查询兼容

你之前使用的Grafana查询语句sum(service_name_processing[$__interval])可以直接沿用,因为Victoria Metrics完全兼容PromQL语法,该查询逻辑能够正常统计指定时间窗口内的处理中请求总量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 07:52:12