2.5. 设置指标集合

要使用服务公开的指标,需要将 OpenShift Monitoring 配置为从 /metrics 端点中提取指标。您可以使用一个 ServiceMonitor 自定义资源定义(CRD)指定如何监控一个服务,或使用一个 PodMonitor 自定义资源定义(CRD)来指定如何监控一个 pod。前者需要一个 Service 对象,而后者不需要,它允许 Prometheus 直接从 pod 公开的指标端点中提取指标。

此流程演示了如何为服务创建 ServiceMonitor 资源。

先决条件

  • 以集群管理员或具有 monitor-edit 角色的用户身份登录。

流程

  1. ServiceMonitor 资源配置创建一个 YAML 文件。在本例中,该文件名为 example-app-service-monitor.yaml
  2. 使用用于创建 ServiceMonitor 资源的配置填充该文件:

    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      labels:
        k8s-app: prometheus-example-monitor
      name: prometheus-example-monitor
      namespace: ns1
    spec:
      endpoints:
      - interval: 30s
        port: web
        scheme: http
      selector:
        matchLabels:
          app: prometheus-example-app

    此配置可使 OpenShift Monitoring 提取在“部署示例服务”中部署的示例服务所公开的指标,该服务包括单个 version 指标。

  3. 将配置文件应用到集群:

    $ oc apply -f example-app-service-monitor.yaml

    部署 ServiceMonitor 资源需要一些时间。

  4. 您可以检查 ServiceMonitor 资源是否正在运行:

    $ oc -n ns1 get servicemonitor

    输出示例

    NAME                         AGE
    prometheus-example-monitor   81m

其他资源

有关 ServiceMonitorPodMonitor 资源的更多信息,请参阅 Prometheus Operator API 文档