Как собрать данные из контейнеров istio-envoy - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь очистить данные от посланника Istio на порту 15090, используя прометей.

Моя текущая настройка - istio 1.1.5 с автономным прометеем (не тот, который поставляется вместе с istio)

Коляски посланника прикреплены к нескольким модулям в разных пространствах имен, и я не уверен, как очистить данные на определенном порте в нескольких контейнерах istio-proxy

Я пытался использовать служебный монитор для очистки данных от посланника istio и его нетработает.

Сервисный монитор, который я пробовал в настоящее время.

kind: ServiceMonitor
metadata:
  annotations:
  labels:
    k8s-app: istio
  name: envoy
  namespace: monitoring
spec:
  endpoints:
  - interval: 5s
    path: /metrics
    port: http-envoy-prom
  jobLabel: envoy
  namespaceSelector:
    matchNames:
    - istio-system
  selector:
    matchLabels:
      istio: mixer```

can somebody help, how to scrape data from port 15090 on multiple istio-proxy containers attached to multiple pods.

1 Ответ

1 голос
/ 05 июня 2019

Помимо ServiceMonitor вам также необходимо создать следующую конфигурацию очистки для прокси-серверов посланников

 # Scrape config for envoy stats
    - job_name: 'envoy-stats'
      metrics_path: /stats/prometheus
      kubernetes_sd_configs:
      - role: pod
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_container_port_name]
        action: keep
        regex: '.*-envoy-prom'
      - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
        action: replace
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:15090
        target_label: __address__
      - action: labelmap
        regex: __meta_kubernetes_pod_label_(.+)
      - source_labels: [__meta_kubernetes_namespace]
        action: replace
        target_label: namespace
      - source_labels: [__meta_kubernetes_pod_name]
        action: replace
        target_label: pod_name
      metric_relabel_configs:
      # Exclude some of the envoy metrics that have massive cardinality
      # This list may need to be pruned further moving forward, as informed
      # by performance and scalability testing.
      - source_labels: [ cluster_name ]
        regex: '(outbound|inbound|prometheus_stats).*'
        action: drop
      - source_labels: [ tcp_prefix ]
        regex: '(outbound|inbound|prometheus_stats).*'
        action: drop
      - source_labels: [ listener_address ]
        regex: '(.+)'
        action: drop
      - source_labels: [ http_conn_manager_listener_prefix ]
        regex: '(.+)'
        action: drop
      - source_labels: [ http_conn_manager_prefix ]
        regex: '(.+)'
        action: drop
      - source_labels: [ __name__ ]
        regex: 'envoy_tls.*'
        action: drop
      - source_labels: [ __name__ ]
        regex: 'envoy_tcp_downstream.*'
        action: drop
      - source_labels: [ __name__ ]
        regex: 'envoy_http_(stats|admin).*'
        action: drop
      - source_labels: [ __name__ ]
        regex: 'envoy_cluster_(lb|retry|bind|internal|max|original).*'
        action: drop

Или используйте этот скрипт

...