【问题标题】:Can I set a default value of Prometheus labels in python?我可以在 python 中设置 Prometheus 标签的默认值吗?
【发布时间】:2020-01-06 13:10:59
【问题描述】:

我使用的是官方的python(2.7)客户端。

我想定义一个带有一些标签的指标,但我并不总是让它们发送所有标签。当我只发送其中一些时,我得到了错误:

AttributeError: 'Counter' 对象没有属性 '_value'

这是我使用的代码:

c = Counter("counterTest, "explain this counter, labelnames=("label1", "label2",), namespace="namespace") 
c.labels(label1="1").inc(1)

这是 python 库中的限制吗?或者可能是对 Prometheus 端的限制?

【问题讨论】:

    标签: python python-2.7 prometheus


    【解决方案1】:

    您必须始终指定所有标签,否则我们怎么知道您要增加哪个系列?您可以指定一个空字符串作为标签值,但这可能会给您的用户造成混淆。

    【讨论】:

      【解决方案2】:

      全局设置Yes(即在创建计数器时只设置一次)--但以后可以选择性地覆盖No

      即我可以在 Counter init 中设置一次标签……但在实际的 inc 调用中我将无法覆盖。

      在创建计数器时设置“labelValues”。

      counter = Counter(
                      name="some name", documentation="some doc",
                      labelnames=['label1', 'label2', 'label3'], labelvalues=['label 1 global value])
      
      counter.labels(label2='some value', label3='some value2').inc()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-24
        • 1970-01-01
        • 1970-01-01
        • 2015-01-08
        • 2020-02-21
        • 1970-01-01
        • 2012-08-13
        相关资源
        最近更新 更多