Prometheus使用计数器计算非静态数据

时间:2018-03-09 16:23:17

标签: go prometheus

我试图计算唯一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 个答案:

答案 0 :(得分:0)

通常应避免使用ConstLabels。你想要做的是kubectl

由于这是一个计数器,因此应该有一个httpRequestInfo.WithLabelValues("404", "get").Inc()后缀,而不是摘要指标使用的_total

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