如何获取一堆Kubernetes短期工作的指标

时间:2019-07-19 09:43:27

标签: kubernetes kubelet cadvisor

我有一种情况是应用户要求创建短暂的(从几秒钟到1-2分钟)k8s作业。我正在尝试检索作业运行时指标(如cpu和内存使用情况)。

我想到(并尝试过)的方法包括:

  1. 普罗米修斯查询,例如container_cpu_usage_seconds_total,但是基于拉式的scape意味着将不包含许多短暂的工作
  2. Pushgateway,但正如普罗米修斯所建议的...valid use case for the Pushgateway is for capturing the outcome of a service-level batch job,所以我怀疑这不是合适的情况。
  3. 公制服务器,但公制服务器仅在短暂的作业容器上返回404,导致结果比普罗米修斯更糟。
  4. 直接查询/api/v1/nodes/{nodeName}/proxy/metrics/cadvisor。尽管几乎是实时的,但它会返回所有容器,因此我必须手动解析结果并找到所需的内容。

我正在考虑使用作业工作者容器旁边的轻量级监视器容器来检索工作者的指标。但是我不知道这是否是一个好主意,即使这样,也不知道如何检索工人的指标。

所以我的问题是:

您建议使用哪种方法来检索大量短期作业的CPU和内存使用情况?

1 个答案:

答案 0 :(得分:0)

在撰写本文时,您使用了普罗米修斯,pushgateways,metrics-server ns查询/ api / v1 / nodes / {nodeName} / proxy / metrics / cadvisor,如果它们不能满足您的要求,我建议您采用新的监控方法和度量标准节省集群性能的是Litmus。

Prometheus是最常见,最复杂的工具,大多数工程师都可以使用,但是Litmus是一种新工具,专注于工作负载测试,可以保存指标并可以随时存储它们。

您可以在这里找到更多信息:litmus

有用的工具:litmus-openebs,这不仅表示不获取指标,例如内存使用率。

然后,您可以在egg中生成图表。 gnuplot。