Prometheus是一款面向云原生应用程序的开源监控工具。本文介绍如何在ASM集成自建Prometheus实现网格监控。
前提条件
- 已创建ACK集群,详情请参见创建ACK托管集群。 
- 已创建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,显示以下页面所示结果。 