0

我目前有一个配置了 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 配置。由于我的设置中没有普罗米修斯,我应该使用不同的格式来收集指标并将它们传递给 Heapster 吗?

4

1 回答 1

2

Kubernetes 目前仅支持以 Prometheus 格式收集自定义指标。您的配置是针对通用收集器的,因此普罗米修斯收集器无法解析它。

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

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

于 2016-09-21T17:41:45.143 回答