python 通过Prometheus监控批处理作业

c86crjj0  于 2023-04-04  发布在  Python
关注(0)|答案(1)|浏览(141)

有一个Python批处理作业,它会将巨大的文件推送到共享位置,一旦文件被推送到共享位置,就会对该文件运行几个测试。我正在尝试获得批处理作业的一些指标,并计划使用具有以下指标或标签的Node导出器。

file_push_status (success or failure)
first_test_status (Pass or Fail)
second_test_status (Pass or Fail)
first_test_time_taken (How long)
second_test_time_taken (How long)

看了prometheus的文档,但是不清楚这里应该使用摘要还是直方图?我知道,Prometheus不支持布尔型(前3种情况),应该如何处理?
如有需要,将附上现有的批作业代码,谢谢。

kq0g1dla

kq0g1dla1#

对于少量的文件,您不需要直方图。
制作所有三个度量量表。
就像

# HELP file_push_success A metric with 0/1 value showing result of file push job. 0 - failure.
# TYPE file_push_success gauge
file_push_success{file="filename.txt"} 1 

# HELP file_push_test_success A metric with 0/1 value showing result of corresponding test after file being pushed. 0 - failure.
# TYPE file_push_test_success gauge
file_push_test_success{file="filename.txt", test="1"} 1
file_push_test_success{file="filename.txt", test="2"} 0

# HELP file_push_test_duration_seconds Duration of corresponding test after file being pushed 
# TYPE file_push_test_duration_seconds gauge
file_push_test_duration_seconds{file="filename.txt", test="1"} 5
file_push_test_duration_seconds{file="filename.txt", test="2"} 13

在这里我将相关的指标组合成一个具有不同标签的指标,这样更容易支持(例如,当你决定添加新测试时),Prometheus documentation通常会建议这样做。

相关问题