如何更新计数器:在avery请求后设置新值,不将新值增加到以前的值?

时间:2017-12-21 16:45:33

标签: python python-3.x prometheus

希望通过python创建Prometheus客户端

Tried to use this module

拿这个代码

from prometheus_client import Counter
c = Counter('my_requests_total', 'HTTP Failures', ['method', 'endpoint'])
c.labels(method='get', endpoint='/').inc()
c.labels(method='post', endpoint='/submit').inc()

一切都很好,但我想在avery请求后设置新值,不要将新值增加到之前的值。

怎么能成功?

1 个答案:

答案 0 :(得分:0)

你必须使用Gauge而不是Counter。

自述文件中的示例:

from prometheus_client import Gauge
g = Gauge('my_inprogress_requests', 'Description of gauge')
g.inc()      # Increment by 1
g.dec(10)    # Decrement by given value
g.set(4.2)   # Set to a given value

另请参阅Prometheus指标类型:https://prometheus.io/docs/concepts/metric_types/

  

<强>计数器

     

计数器是一个累积指标,表示只会上升的单个数值。计数器通常用于计算所服务的请求,完成的任务,发生的错误等。计数器不应用于公开其编号也可能下降的项目的当前计数,例如,当前运行的goroutines的数量。使用仪表用于此用例。

     

<强>计

     

指标是一个指标,表示可以任意上下的单个数值。

     

仪表通常用于测量值,如温度或当前内存使用情况,但也可用于上升和下降的“计数”,如运行的goroutine数量。