kubernetes - 使用 Prometheus 监控自定义 kubernetes pod 指标
问题描述
我正在使用 Prometheus 来监控我的 Kubernetes 集群。我已经在一个单独的命名空间中设置了 Prometheus。我有多个命名空间,并且多个 pod 正在运行。每个 pod 容器在此端点公开一个自定义指标,:80/data/metrics
. 我正在获取 Pods CPU、内存指标等,但是如何配置 Prometheus 以从:80/data/metrics
每个可用 pod 中提取数据?我已经使用本教程设置了 Prometheus,链接
解决方案
您必须将这三个注释添加到您的 pod:
prometheus.io/scrape: 'true'
prometheus.io/path: '/data/metrics'
prometheus.io/port: '80'
它将如何运作?
看看你用来配置prometheus的kubernetes-pods
工作,config-map.yaml
- job_name: 'kubernetes-pods'
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: kubernetes_pod_name
检查这三个 relabel 配置
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
target_label: __address__
在这里,__metrics_path__
以及port
是否从该 pod 中废弃指标正在从 pod 注释中读取。
有关如何配置 Prometheus 的更多详细信息,请参见此处。
推荐阅读
- c - 有没有办法可以防止 C 中的 EOF?
- python-3.x - 在 Python FastAPI 中缓存上传的图像以将其上传到雪花
- r - 对包含积分的函数进行积分
- excel - 使用 PowerShell 从 Excel 中读取带有 % 的值
- java - 如何使用 openapi-generator-maven-plugin 生成没有属性的基本模型类
- flutter - Flutter,如何从对象列表中创建 json?
- redis - 是否可以使用 Redis 消除数据丢失?
- python - 将 Pycharm 项目移动到另一个目录
- django - Django 迁移错误:返回 self.cursor.execute(sql, params) django.db.utils.ProgrammingError:
- angular - 如何在离子的同一页面中调整模态的大小?