我可以使用 Prometheus 列出正在处理或已经处理的文件吗?

Can I use Prometheus to list the files processing or already processed?

我需要知道处理某些文件的应用程序的每个服务的时间。所以我的意思是:同一个文件通过每个服务,我需要知道每个管道时间。 Prometheus 和 Grafana 等是否可以做到这一点?或者还有其他工具吗?甚至……我需要自己实施吗? (观察:Python 中的服务 运行)

好吧,这是一个非常宽泛的问题,只能笼统地回答。我确定这里的社区会要求您在发布问题之前完成此操作:How to Ask


据我从问题中了解到,正在寻找的是自定义指标。 Prometheus 广泛用于收集指标。您可以使用像 prometheus_client 这样的库,并检测每个阶段处理文件所花费的时间。

如果处理文件的服务不是批处理作业或 cronjobs 并且可以公开 API 端点,则公开指标,例如“/metrics”。这只是发布部分。然后,Prometheus 服务可以使用其 scrape_config 配置来使用指标端点。阅读更多相关信息 here

如果服务无法公开端点和指标,它们可以 "push" 将指标发送到 Prometheus Push Gateway,Prometheus 可以配置为抓取网关。阅读更多相关信息 here

还必须注意,不建议尝试按文件发布指标。一般做法是按文件类型发布指标。

一旦所有指标在 Prometheus 中可用,Grafana 就可以从 Prometheus 读取并显示图表。

在设置所有架构时可能需要做出无数其他架构决策,但这里涵盖的内容非常广泛。希望这个回答能尽快给你提供一些参考。快乐监控!