Prometheus是一款面向雲原生應用程式的開源監控工具。本文介紹如何在ASM整合自建Prometheus實現網格監控。
前提條件
已建立ACK叢集,詳情請參見建立ACK託管叢集。
已建立ASM執行個體,詳情請參見建立ASM執行個體。
已在ACK叢集中建立Prometheus執行個體和Grafana樣本。具體操作,請參見開源Prometheus監控。
步驟一:配置網格資料指標
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在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網格監控指標資料
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在服務頁面找到Prometheus,單擊Prometheus對應的External IP。
在Prometheus頁面輸入istio_requests_total,單擊Execute,顯示以下頁面所示結果。
查看Grafana網格監控指標資料
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在服務頁面搜尋找到Grafana,單擊Grafana對應的External IP。
在Grafana頁面選擇Istio Workload Dashboard,顯示以下頁面所示結果。