【问题标题】:Prometheus rules - check file count inside a directory of an app containerPrometheus 规则 - 检查应用容器目录中的文件计数
【发布时间】:2026-01-30 09:25:02
【问题描述】:

我希望编写一个 prometheus 规则来不断检查消息队列长度(exim 邮件中继),即应用程序容器中目录中的文件总数,并通过警报管理器提醒松弛通道。 Prometheus/Alert manager 有可能吗?

【问题讨论】:

    标签: prometheus prometheus-alertmanager exim sre


    【解决方案1】:

    是的,可以使用 Prometheus 和警报管理器来完成,但您需要将要监控的指标导出到 promethes。在您的情况下 script_exporter 将起作用。您必须在该容器内设置导出器并将其配置为在您要监控的文件夹中执行类似ls | wc -l 的内容。

    【讨论】:

      【解决方案2】:

      Prometheus/Alert manager 是否可以做到这一点?

      是的。

      但首先,您需要公开指标(文件数)。可以使用 Prometheus 客户端库 (https://prometheus.io/docs/instrumenting/clientlibs/) 来完成。

      它支持多种编程语言:

      Go
      Java or Scala
      Python
      Ruby
      Bash
      C
      C++
      Common Lisp
      Dart
      Elixir
      Erlang
      Haskell
      Lua for Nginx
      Lua for Tarantool
      .NET / C#
      Node.js
      Perl
      PHP
      R
      Rust
      

      我更喜欢 Python (https://github.com/prometheus/client_python)。 如果您需要一个示例,这里是我的导出器,它公开了我需要的指标(卷曲到 http 端点以获取值):https://github.com/tinhgin/eos-last-irreversible-block-num-exporter/blob/master/exporter.py

      【讨论】: