Prometheus允许我从一个.json文件中动态加载目标文件file_sd_config,如下所示:
#prometheus.yaml
- job_name: 'kube-metrics'
file_sd_configs:
- files:
- 'targets.json'
个字符
但是,我的目标在metrics_path
中不同,而不是主机(我想为<kube-api-server>/api/v1/nodes/<node-name>/proxy/metrics/cadvisor
上的每个kubernetes节点收集指标)但是我只能在作业级别而不是每个目标设置metrics_path
。这甚至可以用prometheus实现吗?或者我必须编写自己的代码来抓取所有这些指标并将其导出到单个目标。此外,我找不到所有支持的列表自动发现机制,我在文档中错过了什么吗?
4条答案
按热度按时间u3r8eeie1#
您可以在Prometheus config中使用relabel_config来更改
__metrics_path__
标签配置。原则是以
host:port/path/of/metrics
的形式在目标中提供指标路径(注意:删除http://
,它在scrape_config
的scheme
参数中)字符串
然后将相关的元标签替换为
型
您可以在配置时对任何已知的标签重复使用此方法,以修改刮取的配置。
在Prometheus上,使用服务发现页面检查您的配置是否已正确修改。
服务发现的官方列表在配置文档中:在索引中查找
*_sd_config
。xe55xuns2#
有一种稍微优雅的方法可以做到这一点,它不涉及操作地址。您可以为目标创建一个标签,该标签可以作为您的“重新标记”操作的源,类似于以下内容:
字符串
然后,您的重新标记将简单地:
型
由于正在使用的标签以“__"开头,因此它将从正在提取的指标中剥离,使其变得美观和干净。
8iwquhpp3#
我想要的东西像下面的端点和实现与此配置
字符串
这将用
_new_path
值替换$1
。型
5jvtdoz24#
您可以使用特殊标签在目标级别设置指标路径和方案。您甚至可以更改刮取间隔,超时和作业名称:
字符串