heapster 格式的 cAdvisor 自定义指标

cAdvisor custom metrics with heapster format

我目前有一个配置了 Heapster/InfluxDB/Grafana 的 Kubernetes 集群。

我知道 Kubelet 现在有一个嵌入式 cAdvisor 实例,我已将其配置为查看应用程序端点以收集自定义指标。

我遵循了这个指南:http://guoshimin.github.io/2016/06/03/custom-metrics.html:

{
  "endpoint" : "http://localhost:31234/sessions",
  "metrics_config" : [
    {
      "name" : "activeSessions",
      "metric_type" : "gauge",
      "units" : "number of active sessions",
      "data_type" : "int",
      "polling_frequency" : 10,
      "regex" : "Active sessions: ([0-9]+)"
    }
  ]
}

目前 Kubelet 抛出错误 -

failed to create collector for container "/docker/664af6c4c1998514770371267ba6c117c532a448f6301f14fc53ca9798abff5b", config "prometheus": json: cannot unmarshal object into Go value of type string

看来我使用的是 Prometheus 配置。由于我的设置中没有 Prometheus,我是否应该使用其他格式来收集指标并将它们传递给 Heapster?

Kubernetes 目前仅支持收集 Prometheus 格式的自定义指标。您的配置适用于通用收集器,因此 prometheus 收集器无法解析它。

作为实验,您可以手动将主机上容器 运行 上的 docker 标签从 io.cadvisor.metric.prometheus 更改为 io.cadvisor.metric.raw,它应该可以工作。不过 Kubernetes 中没有自动执行此操作的机制。

一旦 cAdvisor 抓取了自定义指标,它们就会以 Heapster 可以理解的格式导出。只要cAdvisor能够获取指标,Heapster就能够从cAdvisor获取指标。