当前位置: 首页 > 知识库问答 >
问题:

使用Prometheus中的指标监控批处理作业的状态

程俊誉
2023-03-14

我们的几个应用程序具有每天晚上聚合数据的批处理作业。这些批处理作业是Python脚本,使用Prometheus Pushgateway将度量值推送到Prometheus,我们有一些规则,当这些度量值变得无效(例如,超过某个阈值)时,会触发警报(在Alertmanager中)。

我们现在还想使用Prometheus指标来仔细检查批处理作业本身是否正确运行:例如,作业是否按时开始?有任何错误发生吗?这项工作完成了吗?为此,我们希望更改我们的Python脚本,以便在脚本开始和结束时以及发生任何错误时推送一个指标。这确实引起了一些问题:我们有相当多的批处理作业,每个批处理作业有3个指标,为规则/警报创建了大量手动配置;我们还想在Grafana中以图形方式显示状态,但不确定什么是合适的视觉对象会看起来像。

有没有其他人试图解决类似的问题,使用普罗米修斯指标来监控几个批处理作业的状态?你记录了哪些指标,你的警报/规则是什么样子的?你有没有找到一种直观的方法来图形化地显示每个批处理作业的状态?

共有1个答案

景温书
2023-03-14

您可以在处为每个批处理作业公开一个称为“上次运行”的度量。然后,您可以根据作业是否在24小时前运行(或者您的阈值是多少)发出警报。

一个简单的警报是:last_run_at{env=“prod”}

普罗米修斯中的time()函数对此很有用。文件:https://prometheus.io/docs/prometheus/latest/querying/functions/#time

您不必对每个作业发出警报。您可以对过去24小时内未运行的任何作业发出警报。也可以按环境或任何其他标签进行筛选。

关键是,它不一定非得是1:1的作业才能发出警报。在Grafana中,你也应该能够很容易地将其绘制出来。

 类似资料:
  • 描述 作为grafana和prometheus世界的新手,我正在努力将laravel php cli应用程序中的自定义指标添加到grafana云,最好是通过grafana代理。 情况 我在一个linux服务器上使用grafana云和他们的grafana代理,该服务器运行一个laravel php工作者,没有Web服务器。grafana代理运行node_exporter集成。我已经尝试找到一些关于如

  • 我正在使用Prometheus来监控我的库伯内特斯集群。我在一个单独的命名空间中设置了Prometheus。我有多个命名空间和多个pod正在运行。每个pod容器在此终端公开一个自定义指标,。我正在获取Pods CPU、内存指标等,但是如何配置Prometheus从每个可用pod中的中提取数据?我使用本教程设置了Prometheus、Link

  • 我有以下工作要处理在一定的时间间隔或特别的基础上。 作业中的步骤如下: 我也想要用户界面,在那里我可以触发一个特别的基础上的工作,而且我应该能够提供参数从用户界面。 我想用Spring batch来完成这个任务,但它更多的是用于读->处理->写之类的工作。这里,在第一步中,我正在生成由第二步读取的数据。我不确定我是否还可以使用Spring batch来实现这个,或者有更好的方法来实现这个。

  • 当编写器抛出异常时,我希望能够将步骤和作业状态设置为失败。在做了一些调试和检查Spring批处理源代码后,我注意到配置了一个,它认为是一个致命的异常,因此将作业状态设置为FAILED,所以我将代码包装在我的编写器中的一个try-get中,将包装在中,现在作业和步骤状态设置为FAILED,这是我想要的。我不确定这是否是正确的方法,因为我在任何地方都找不到它的文档,的留档也没有提到它。所以,问题是:这

  • 我想从文本文件中读取、解析和写入数据。我实现了这一点,但我有一个关于标识符声明的问题。我在下面展示了我的类。 客户数据apper.java 顾客JAVA 文件管理器。xml 我想问这个问题,我可以在FieldSetMapper中使用下面的类吗?如果我在定义标识符时不使用Camelcase符号,那么写入数据库就不起作用了。有什么方法或方法吗?非常感谢。 顾客JAVA

  • 它提供了很多与Spring Boot相关的信息,但我无法理解它是否也能提供我的Spring Batch作业的执行状态信息。例如,如果一个特定的作业成功完成或失败。 是否可以用Spring Boot Admin工具监视这些信息?如果可能的话,我如何检查我的工作状态?