【问题标题】:How to reuse prometheus gauge metric?如何重用prometheus Gauge metric?
【发布时间】:2021-12-12 07:47:01
【问题描述】:

我对 python 和 prometheus 很陌生。任何帮助将不胜感激。 我正在使用普罗米修斯客户端。我在文件 A 中创建了一个仪表实例

    self.spark_time = prom.Gauge(
        "SparkJobTime", 
        "Gauge pod running time", 
        self.metric_labels
    )

我也在文件 A 中设置指标

self.spark_time.labels(job=job_name).set(pod_duration.total_seconds())  

在文件 b 中,我也想使用这个 SparkJobTime 指标。 我在文件 b 中尝试过

self.spark_time = prom.Gauge(
    "SparkJobTime", 
    "Gauge pod running time", 
    self.metric_labels
)

然后它在 CollectorRegistry 中处理重复的时间序列... 我应该如何在文件 b 中使用这个 SparkJobTime 指标?

谢谢

【问题讨论】:

    标签: prometheus


    【解决方案1】:

    您的代码不清楚...self spark_time 中的self 是什么?通常 Python 中的self 指的是类定义中的实例变量。那是你定义仪表的地方吗?

    当您复制该行 self.spark_time = prom.Gauge(...) 时,您会创建一个具有相同名称和其他详细信息的新仪表,这是不允许的。

    创建仪表并将其分配给 foo = prom.Gauge(...) 后,您只需将其称为 foo,而不是重复创建它。

    在文件 b 中,如果 self.spark_time 代表相同的“事物”,您应该能够:

    self.spark_time.labels(job=job_name).set(pod_duration.total_seconds()) 
    

    我怀疑一个问题可能是您将 Gauge 分配给某个类的实例变量 (spark_time)。一旦你在一个类的函数中完成了这个,你就不需要再做一次了。

    【讨论】:

      猜你喜欢
      • 2021-01-23
      • 1970-01-01
      • 2018-11-22
      • 2020-05-14
      • 2021-05-07
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      相关资源
      最近更新 更多