Prometheus是一款面向雲原生應用程式的開源監控工具。本文以ACK叢集提供的開源ack-prometheus-operator為例,介紹如何在ASM整合自建Prometheus實現網格監控。
前提條件
-
已建立ACK叢集,詳情請參見建立ACK託管叢集。
-
已建立ASM執行個體,詳情請參見建立ASM執行個體。已在ACK叢集中建立Prometheus執行個體和Grafana執行個體。具體操作,請參見開源Prometheus監控。
安裝ack-prometheus-operator
本文以ACK叢集提供的開源Prometheus監控ack-prometheus-operator為例進行配置,如通過其他方式為叢集安裝自建Prometheus,則additionalScrapeConfigs中的內容應該被添加到Prometheus執行個體的scrape configs中,有關scrape configs的相關資訊,請參考prometheus_scrape_config。
-
登入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
產生監控資料
請求資料平面的服務,此處以Bookinfo為例,詳細介紹請參見入門概述。進入Productpage頁面,多次重新整理頁面,以產生監控資料。訪問 BookInfo Sample 應用的產品頁面,頁面正常展示書籍 The Comedy of Errors 的詳情資訊,包括 Book Details(Type、Pages、Publisher、Language、ISBN 等)和 Book Reviews(Reviewer1 五星評價、Reviewer2 四星評價),表明樣本應用已正常運行並可產生監控資料。
結果驗證
驗證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對應的外部 IP 位址(External IP)。
-
在Prometheus頁面輸入istio_requests_total,單擊Execute,顯示以下頁面所示結果。在 Prometheus 查詢介面的輸入框中輸入
istio_requests_total,單擊 Execute。查詢結果以表格形式展示,包含兩條記錄:一條 response_code 為503(值為 1),source_app 為 reviews,source_version 為 v2,destination_service 為 ratings.bookinfo.svc.cluster.local;另一條 response_code 為200(值為 19),source_app 為 reviews,source_version 為 v2,destination_app 為 ratings,destination_version 為 v1。
查看Grafana網格監控指標資料
-
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
-
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
-
在服務頁面搜尋找到Grafana,單擊Grafana對應的外部 IP 位址(External IP)。
-
在Grafana頁面選擇Istio Workload Dashboard,顯示以下頁面所示結果。
