代码之家  ›  专栏  ›  技术社区  ›  bharat nc

普罗米修斯使用计数器计数非静态数据

  •  0
  • bharat nc  · 技术社区  · 6 年前

    我试图计算唯一URI的数量,并对其进行计数。这些URI会随着时间的推移而变化,可以有多个相同类型的URI。例如,可以有多个“/foo”和“/bar”,可以引入一个新的URI,比如“pooh”,我必须将它们添加到计数器中并保持计数。在这种情况下,我不能使用常量标签。例如,如果我要按方法和/或状态代码计算http请求的数量,我可以这样做:

        httpRequestInfo := prometheus.NewCounterVec(
            prometheus.CounterOpts{
                Name:        "http_requests_sum",
                ConstLabels: prometheus.Labels{"component": "foo"},
                Help:        " A Counter of the number of each type of request by status code and method",
            },
            []string{"code", "method"},
        )
    

    在这种情况下,我如何使用计数器?谢谢

    1 回复  |  直到 6 年前
        1
  •  0
  •   brian-brazil    6 年前

    通常应避免使用constlabel。你想做的是 httpRequestInfo.WithLabelValues("404", "get").Inc()

    由于这是一个计数器,因此应具有 _total 后缀而不是a _sum 由摘要度量使用。

    您可能想使用 InstrumentHandlerCounter 而不是自己实现跟踪HTTP请求的所有逻辑。