2016-09-21 4 views
0

В настоящее время у меня есть кластер Kubernetes, настроенный с помощью Heapster/InfluxDB/Grafana.cAdvisor custom metrics with heapster format

Я знаю, что у 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 

Это, кажется, думают, что я использую конфиг Прометея. Есть ли другой формат, который я должен использовать, чтобы он собирал метрики и передавал их в Heapster, так как у меня нет Прометея в моей настройке?

ответ

2

В настоящее время Kubernetes поддерживает только сбор пользовательских показателей в формате Prometheus. Ваша конфигурация предназначена для общего коллекционера, поэтому сборщик прометей не может его разобрать.

В качестве эксперимента вы можете вручную изменить метку докера в контейнере, запущенном на хосте, от io.cadvisor.metric.prometheus до io.cadvisor.metric.raw, и он должен работать. В Кубернете нет механизма, чтобы сделать это автоматически.

Как только cAdvisor соскабливает пользовательские показатели, они затем экспортируются в формате, понятном Heapster. Пока cAdvisor может получить метрики, Heapster сможет получить метрики от cAdvisor.