如何重用prometheus Gauge metric?
Posted
技术标签:
【中文标题】如何重用prometheus Gauge metric?【英文标题】:How to reuse 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 指标?
谢谢
【问题讨论】:
【参考方案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
)。一旦你在一个类的函数中完成了这个,你就不需要再做一次了。
【讨论】:
以上是关于如何重用prometheus Gauge metric?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 OpenCensus 检测 Prometheus Gauge?