我有一个案例,即短期(从几秒钟到 1-2 分钟)k8s 作业将根据用户请求创建。我正在尝试检索作业运行时指标(如 cpu 和内存使用情况)。
我想过(并尝试过)的方法包括:
- Prometheus 查询,类似
container_cpu_usage_seconds_total
,但基于拉取的 scape 意味着许多短命的工作不会被包括在内 - Pushgateway,但正如 prometheus 所建议的那样,...... Pushgateway 的有效用例是用于捕获服务级批处理作业的结果,所以我怀疑这不是合适的情况。
- Metric-server,但 metric-server 仅在短期作业 pod 上返回 404,导致比 Prometheus 更差的结果。
- 直接查询
/api/v1/nodes/{nodeName}/proxy/metrics/cadvisor
。虽然几乎是实时的,但它会返回所有容器,所以我必须手动解析结果并找到我需要的东西。
我正在考虑在作业工作者容器旁边使用轻量级监视器容器来检索工作者的指标。但我不知道这是否是一个好主意,即使是这样,如何检索工人的指标。
所以我的问题是:
您推荐什么方法来检索大量短期作业的 cpu 和 memory 使用情况?