prometheus - 如何将一个 Prometheus 服务器中的单个目标列表联合/Hashmod 到多个相同的导出器?
问题描述
遇到我在数据中心运行并受服务器大小限制的情况。我在一台服务器上运行一个 Prometheus 实例和一个导出器。出口商的目标数量很大,有数千个。这对服务器来说负载太大,我无法扩展。但是,我可以添加更多相同大小的服务器。
我想我可以联合并运行多个相同的 Prom 实例,每个实例都带有导出器(就像我当前的设置一样),并将它们输入到 Leader Prom 实例中。但是,我正在抓取一长串目标,并且 Prom 实例没有使用很多资源,出口商正在使用更多资源(出口商使用了 85% 的资源)。因此,设置几个相同的导出器可能是有意义的,每个导出器都在自己的服务器上,然后使用我的单个 Prom 实例将列表中 1/3 的目标发送到每个导出器服务器。
这与联合用例略有不同,因为我不想运行多个 Prom 服务器。此外,生成了带有目标列表的文件,并且很难将其拆分为多个文件,否则我可以在 prometheus.yml 中创建不同的作业,其中每个作业使用指向包含 1/3 的唯一文件的 file_sd_configs目标(如targets1.json、targets2.json、targets3.json)
理想情况下,我想为 file_sd_configs 提供一个文件,“targets.json”,然后使用重新标记/hashmod(或其他什么?)将它们平均划分并将子集发送到特定服务器。这是可能的吗?
解决方案
将此添加到您的重新标记配置中:
- source_labels: [instance]
modulus: 4 # 4 replicas
target_label: __tmp_hash
action: hashmod
- source_labels: [__tmp_hash]
regex: ^1$ # This is the 2nd replica
action: keep
每个副本一个,每个副本不同__address__
。
另一种选择是使用负载平衡器。
推荐阅读
- flutter - 颤振中的底部导航栏问题:
- r - How to keep columns after `summarise` operation in `dplyr`
- jenkins - 越来越腐败。'.xls' 文件通过 Jenkins 管道中的外部 API 调用
- python-3.x - 如果文件夹为空,则跳过功能
- java - 每次请求字段时,惰性初始化原型字段都会返回新实例
- python - Pytest - 自定义终端输出
- python - Django 自定义注册表单错误
- stata - stata中面板数据的xtabond回归问题
- python - Python if 语句在使用随机输入端口时出错
- javascript - 带有 Try and Catch 块的异步/等待