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