从 DaemonSet 中的每个 Pod 抓取指标
Scraping metrics from every Pod in a DaemonSet
我们正在使用 https://github.com/fluent/fluentd-kubernetes-daemonset 在我们的 K8s 集群中部署 Fluentd。我们在集群中有 5 个节点,这意味着有 5 个 Fluentd pods.
DaemonSet 中的每个 Fluentd pod 通过 fluentd prometheus 插件在 localhost:24231/metrics
端点上公开 Prometheus 指标。我无法找到有关如何配置 Prometheus 以从每个 Pod 的 localhost:24321/metrics 端点收集这些指标的相关文档。
TL;DR
- 一个DaemonSet
中有N个pods
- 每个 pod 都有暴露在 localhost:24321
上的普罗米修斯指标
我需要配置 Prometheus,以便它能够以某种方式抓取这些指标。非常感谢任何有关如何解决此问题的提示或此类配置的示例!
我们案例中的解决方案是使用来自普罗米修斯操作员的 pod monitors CRD,podMetricEndpoints
指向正确的端口:
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: fluentd
spec:
podMetricsEndpoints:
- honorLabels: true
interval: 15s
path: /metrics
targetPort: 24231
scheme: http
selector:
matchLabels:
app: fluentd
我们正在使用 https://github.com/fluent/fluentd-kubernetes-daemonset 在我们的 K8s 集群中部署 Fluentd。我们在集群中有 5 个节点,这意味着有 5 个 Fluentd pods.
DaemonSet 中的每个 Fluentd pod 通过 fluentd prometheus 插件在 localhost:24231/metrics
端点上公开 Prometheus 指标。我无法找到有关如何配置 Prometheus 以从每个 Pod 的 localhost:24321/metrics 端点收集这些指标的相关文档。
TL;DR
- 一个DaemonSet 中有N个pods
- 每个 pod 都有暴露在 localhost:24321 上的普罗米修斯指标
我需要配置 Prometheus,以便它能够以某种方式抓取这些指标。非常感谢任何有关如何解决此问题的提示或此类配置的示例!
我们案例中的解决方案是使用来自普罗米修斯操作员的 pod monitors CRD,podMetricEndpoints
指向正确的端口:
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: fluentd
spec:
podMetricsEndpoints:
- honorLabels: true
interval: 15s
path: /metrics
targetPort: 24231
scheme: http
selector:
matchLabels:
app: fluentd