从 prometheus 中的不同 pod 收集指标

问题描述 投票:0回答:1

我想从 Kubernetes 的部署(具有多个 Pod)收集指标,我的指标之一是我的部署收到的调用数量。

我的问题是关于 Prometheus:如何配置 Prometheus 从属于部署的所有 Pod 中获取指标?实现这一目标的最佳实践是什么?

kubernetes containers prometheus
1个回答
2
投票

我强烈建议使用 prometheus-operator 来完成所有繁重的工作,为您的应用程序配置 Prometheus 监控。

例如,拥有这样的部署和服务:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: example-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: example-app
  template:
    metadata:
      labels:
        app: example-app
    spec:
      containers:
      - name: example-app
        image: fabxc/instrumented_app
        ports:
        - name: web
          containerPort: 8080
---
kind: Service
apiVersion: v1
metadata:
  name: example-app
  labels:
    app: example-app
spec:
  selector:
    app: example-app
  ports:
  - name: web
    port: 8080

您可以配置

ServiceMonitor
对象,该对象将使用 Service 作为服务发现端点来查找 Deployment 的所有 pod。这假设您的应用程序使用 HTTP 路径公开指标
/metrics

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: example-app
  labels:
    team: frontend
spec:
  selector:
    matchLabels:
      app: example-app
  endpoints:
  - port: web

这将使 Prometheus 为您的应用程序抓取指标。

您可以在这里阅读有关 ServiceMonitors 的更多信息:https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/getting-started.md

© www.soinside.com 2019 - 2024. All rights reserved.