2017-01-18 5 views
1

Я пытаюсь очистить информацию об уровне слоя, используя prometheus kubernetes. Вот конфигурация, которую я использую:Как очистить информацию об уровне стружки с помощью прометеев кубернетов?

- job_name: 'kubernetes-pods' 

    kubernetes_sd_configs: 
    - api_servers: 
    - 'https://kubernetes.default' 
    role: pod 
    relabel_configs: 
    - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] 
    action: keep 
    regex: true 
    - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] 
    action: replace 
    target_label: __metrics_path__ 
    regex: (.+) 
    - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] 
    action: replace 
    regex: (.+):(?:\d+);(\d+) 
    replacement: ${1}:${2} 
    target_label: __address__ 
    - action: labelmap 
    regex: __meta_kubernetes_pod_label_(.+) 
    - source_labels: [__meta_kubernetes_pod_namespace] 
    action: replace 
    target_label: kubernetes_namespace 
    - source_labels: [__meta_kubernetes_pod_name] 
    action: replace 
    target_label: kubernetes_pod_name 

Но я не вижу никакой информации о grafana. Нужно ли делать какие-либо изменения в моих приложениях? snapshot

+0

Эта статья по протоколу HTTPS: //www.weave.works/blog/prometheus-and-kubernetes-monitoring-your-applications/ было очень для меня. – weivall

ответ

0

С этой конфигурацией первое действие запрашивает, чтобы блок был аннотирован prometheus.io/scrape=true. Вы задали эту аннотацию на рассматриваемых стручках?

+0

Да, я установил аннотации. Есть что-то еще, что мне нужно сделать? – nocturnal

+0

С точки зрения приложения (app), помимо установки аннотаций, мне нужно публиковать любые данные или показатели? – nocturnal

+0

Ваши приложения должны предоставлять данные в формате Prometheus через HTTP (обычно через клиентскую библиотеку). Прометей не может извлекать данные из ничего. –

0

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

Я предполагаю, что вы используете это значение по умолчанию Grafana dashboard.

Ваш графана запрос может выглядеть следующим образом:

sum (container_memory_working_set_bytes{pod_name=~"^$Pod$"})/sum (machine_memory_bytes{kubernetes_io_hostname=~"^$Node$"}) * 100 

Так вы должны убедиться, что container_memory_working_set_bytes Засчитываются и что он имеет поле pod_name.

В случае, если метрика не записана, вам нужно будет сделать копание в журналах prometheus, чтобы проверить, способен ли он обходить API.

В случае, если метрика существует, но метки ошибочны, вы можете либо отрегулировать запрос в Grafana, либо добавить еще relabel_config в Prometheus. См. official documentation.

+0

Я вижу, что под http: //x.x.x.x: 9090/target, kuberneted-pods, появляется ошибка Get http: //x.x.x.x: 9100/metrics: dial tcp x.x.x.x: 9100: getsockopt: connection failed. Таким образом, он даже не способен очищать данные. – nocturnal

+0

Проверьте журналы вашего прометея и затем попытайтесь устранить возможные ошибки. Для меня это были плохие учетные данные, как описано здесь: https://github.com/kubernetes/dashboard/issues/374 – pagid

+0

Вы нашли решение для этого? – pagid

0

Имейте в виду,

есть конфигурация здесь ошибка: __meta_kubernetes_pod_namespace не существует и должен быть __meta_kubernetes_namespace

С наилучшими пожеланиями,

Барт