2.5. 设置指标集合
要使用服务公开的指标,您需要将 OpenShift Monitoring 配置为从 /metrics
端点中提取指标。您可以使用一个 ServiceMonitor 或 PodMonitor 来完成此操作,前者是一个指定应该如何监控服务的自定义资源定义 (CRD),后者是一个指定应该如何监控 pod 的 CRD。前者需要 Service 对象,而后者则不需要,允许 Prometheus 直接从 Pod 公开的指标端点中提取指标。
此流程演示了如何为服务创建 ServiceMonitor。
先决条件
-
以集群管理员或具有
monitor-crd-edit
角色的用户身份登录。
流程
-
为 ServiceMonitor 配置创建 YAML 文件。在本例中,该文件名为
example-app-service-monitor.yaml
。 使用用于创建 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
指标。将配置文件应用到集群:
$ oc apply -f example-app-service-monitor.yaml
部署 ServiceMonitor 需要一些时间。
您可以检查 ServiceMonitor 是否正在运行:
$ oc -n ns1 get servicemonitor NAME AGE prometheus-example-monitor 81m
其他资源
有关 ServiceMonitor 和 PodMonitor 的更多信息,请参阅 Prometheus Operator API 文档。