【发布时间】:2020-04-03 16:22:28
【问题描述】:
我需要知道处理某些文件的应用程序的每个服务的时间。所以我的意思是:同一个文件通过每个服务,我需要知道每个管道时间。 Prometheus 和 Grafana 等有可能做到这一点吗?还是有其他工具呢?甚至......我需要自己实现它吗? (Obs:服务在 Python 中运行)
【问题讨论】:
标签: python logging prometheus grafana data-pipeline
我需要知道处理某些文件的应用程序的每个服务的时间。所以我的意思是:同一个文件通过每个服务,我需要知道每个管道时间。 Prometheus 和 Grafana 等有可能做到这一点吗?还是有其他工具呢?甚至......我需要自己实现它吗? (Obs:服务在 Python 中运行)
【问题讨论】:
标签: python logging prometheus grafana data-pipeline
嗯,这是一个非常宽泛的问题,只能宽泛地回答。我相信这里的社区会在发布问题之前要求您完成此操作:How to Ask
根据我从问题中了解到的情况,正在寻找的是自定义指标。 Prometheus 广泛用于收集指标。您可以使用 prometheus_client 之类的库,并测量每个阶段处理文件所花费的时间。
如果处理文件的服务不是批处理作业或 cronjobs 并且可以公开 API 端点,则公开指标,例如“/metrics”。这只是出版部分。然后,Prometheus 服务可以使用其 scrape_config 配置来使用指标端点。阅读更多关于它的信息here。
如果服务无法公开端点和指标,它们可以将指标“推送”到 Prometheus 推送网关,并且可以将 Prometheus 配置为抓取网关。阅读更多关于它的信息here。
还必须注意,尝试发布每个文件的指标是不可取的。一般的做法是按文件类型发布指标。
在 Prometheus 中提供所有指标后,Grafana 就可以从 Prometheus 读取数据并显示图表。
在进行全部设置时,可能需要做出无数其他架构决策,但此处涵盖的范围相当广泛。希望这个答案能迅速为您提供一些参考。祝您监控愉快!
【讨论】: