gpt4 book ai didi

kubernetes - prometheus 动态metrics_path

转载 作者:行者123 更新时间:2023-12-02 11:56:04 28 4
gpt4 key购买 nike

Prometheus 允许我从这样的 .json 文件中使用 file_sd_config 动态加载目标

#prometheus.yaml
- job_name: 'kube-metrics'
file_sd_configs:
- files:
- 'targets.json'
[
{
"labels": {
"job": "kube-metrics"
},
"targets": [
"http://node1:8080",
"http://node2:8080"
]
}
]

但是我的目标在 metrics_path 上有所不同而不是主机(我想为 <kube-api-server>/api/v1/nodes/<node-name>/proxy/metrics/cadvisor 上的每个 kubernetes 节点抓取指标)但我只能设置 metrics_path在工作级别而不是每个目标。这是否可以通过普罗米修斯实现,或者我是否必须编写自己的代码来抓取所有这些指标并将它们导出到单个目标。此外,我找不到所有支持的自动发现机制的列表,我是否遗漏了文档中的某些内容?

最佳答案

您可以使用 relabel_config在 Prometheus 配置中更改 __metrics_path__标签配置

原则是在您的目标中以 host:port/path/of/metrics 的形式提供指标路径。 (注意:删除 http:// ,它在 scheme 参数中 scrape_config )

[
{
"targets": [
"node1:8080/first-metrics",
"node2:8080/second-metrics"
]
}
]

然后用零件替换相关的元标签
- job_name: 'kube-metrics'
file_sd_configs:
- files:
- 'targets.json'
relabel_configs:
- source_labels: [__address__]
regex: '[^/]+(/.*)' # capture '/...' part
target_label: __metrics_path__ # change metrics path
- source_labels: [__address__]
regex: '([^/]+)/.*' # capture host:port
target_label: __address__ # change target

您可以在配置时已知的任何标签上重用此方法来修改刮取的配置。

在 Prometheus 上,使用服务发现页面检查您的配置是否已正确修改。

服务发现的官方列表在 the configuration documentation : 寻找 *_sd_config在索引中。

关于kubernetes - prometheus 动态metrics_path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59866342/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com