第 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 与用户工作负载监控集成。

先决条件

流程

  1. 应用 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

  2. 应用 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 监控会忽略 ServiceMonitorPodMonitor 对象中的 namespaceSelector spec,所以您必须在所有网格命名空间中应用 PodMonitor 对象,包括 Istio control plane 命名空间。
  3. 进入 OpenShift Console Observe Metrics,并运行查询 istio_requests_total
注意

指标 实施可能需要几分钟时间来返回结果。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.