Prometheus是一款面向云原生應用程序的開源監控工具。本文介紹如何在ASM集成自建Prometheus實現網格監控。
前提條件
已創建ACK集群,詳情請參見創建Kubernetes托管版集群。
已創建ASM實例,詳情請參見創建ASM實例。
已在ACK集群中創建Prometheus實例和Grafana示例。具體操作,請參見開源Prometheus監控。
步驟一:配置網格數據指標
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在Helm頁面的操作列,單擊ack-prometheus-operator對應的更新。
在更新發布面板的YAML文本框中,修改
additionalScrapeConfigs
字段,然后單擊確定。YAML文件較長,您可以使用快捷鍵Ctrl+F搜索
additionalScrapeConfigs
字段進行修改。修改后的additionalScrapeConfigs
字段如下:additionalScrapeConfigs: # 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: labeldrop 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
步驟二:開啟Prometheus
具體操作,請參見將監控指標采集到可觀測監控Prometheus版。
步驟三:產生監控數據
請求數據平面的服務,此處以Bookinfo為例,詳細介紹請參見入門概述。進入Productpage頁面,多次刷新頁面,以產生監控數據。
結果驗證
驗證Envoy是否采集監控指標數據。
執行以下命令,返回監控指標數據,表示Envoy采集監控指標數據。若沒有數據,則Envoy沒有在采集監控指標數據。
details=$(kubectl get pod -l app=details -o jsonpath={.items..metadata.name})
kubectl exec $details -c istio-proxy -- curl -s localhost:15090/stats/prometheus |grep istio
查看Prometheus網格監控指標數據
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在服務頁面找到Prometheus,單擊Prometheus對應的External IP。
在Prometheus頁面輸入istio_requests_total,單擊Execute,顯示以下頁面所示結果。
查看Grafana網格監控指標數據
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在服務頁面搜索找到Grafana,單擊Grafana對應的External IP。
在Grafana頁面選擇Istio Workload Dashboard,顯示以下頁面所示結果。