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,显示以下页面所示结果。