第 2 章 指标和 Service Mesh
2.1. 使用指标
监控堆栈组件会在每次 OpenShift Container Platform 安装中部署,并由 Cluster Monitoring Operator (CMO)管理。这些组件包括 Prometheus、Alertmanager、Thanos Querier 等。CMO 还部署 Telemeter 客户端,该客户端从平台 Prometheus 实例向红帽发送一个部分数据,以便为集群提供远程健康监控。
将应用程序添加到网格后,您可以使用 OpenShift Container Platform 上运行的应用程序监控集群内健康和性能,使用指标和自定义警报用于 CPU 和内存用量、网络连接和其他资源使用量。
2.1.1. 使用 Service Mesh 配置 OpenShift Monitoring
您可以将 Red Hat OpenShift Service Mesh 与用户工作负载监控集成。
先决条件
- 安装了 Red Hat OpenShift Service Mesh。
- 启用 user-workload 监控。请参阅 为用户定义的项目启用监控。
流程
应用
ServiceMonitor
对象来监控 Istio control plane:ServiceMonitor
对象示例apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: istiod-monitor namespace: istio-system spec: targetLabels: - app selector: matchLabels: istio: pilot endpoints: - port: http-monitoring interval: 30s
应用
PodMonitor
对象从 Istio 代理收集指标:PodMonitor
对象示例apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: istio-proxies-monitor namespace: istio-system 1 spec: selector: matchExpressions: - key: istio-prometheus-ignore operator: DoesNotExist podMetricsEndpoints: - path: /stats/prometheus interval: 30s relabelings: - action: keep sourceLabels: ["__meta_kubernetes_pod_container_name"] regex: "istio-proxy" - action: keep sourceLabels: ["__meta_kubernetes_pod_annotationpresent_prometheus_io_scrape"] - action: replace regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) replacement: '[$2]:$1' sourceLabels: ["__meta_kubernetes_pod_annotation_prometheus_io_port","__meta_kubernetes_pod_ip"] targetLabel: "__address__" - action: replace regex: (\d+);((([0-9]+?)(\.|$)){4}) replacement: '$2:$1' sourceLabels: ["__meta_kubernetes_pod_annotation_prometheus_io_port","__meta_kubernetes_pod_ip"] targetLabel: "__address__" - action: labeldrop regex: "__meta_kubernetes_pod_label_(.+)" - sourceLabels: ["__meta_kubernetes_namespace"] action: replace targetLabel: namespace - sourceLabels: ["__meta_kubernetes_pod_name"] action: replace targetLabel: pod_name
- 1
- 因为 OpenShift Container Platform 监控会忽略
ServiceMonitor
和PodMonitor
对象中的namespaceSelector
spec,所以您必须在所有网格命名空间中应用PodMonitor
对象,包括 Istio control plane 命名空间。
-
进入 OpenShift Console
Observe Metrics,并运行查询 istio_requests_total
。
注意
指标 实施可能需要几分钟时间来返回结果。