如何将一个普罗米修斯服务器上的单个目标列表联合到多个相同的导出器



遇到在数据中心运行且受服务器大小限制的情况。我在一台服务器上运行一个普罗米修斯实例和一个导出器。出口商的目标数量很大,有数千个。这对服务器来说负载太大,我无法扩展。但是,我可以添加更多相同大小的服务器。

我想我可以将多个相同的Prom实例与每个实例上的导出器联合并运行(就像我当前的设置一样(,并将它们输入到Leader Prom实例中。然而,我正在抓取一长串目标,Prom实例没有使用太多资源,导出器使用了更多的资源(85%的资源由导出器使用(。因此,设置几个相同的导出器,每个导出器都在自己的服务器上,然后使用我的单个Prom实例将列表中的1/3目标发送到每个导出器服务器,这可能是有意义的。

这与联合用例有点不同,因为我更喜欢不运行多个Prom服务器。此外,生成了带有目标列表的文件,很难将其拆分为多个文件,否则我可以在prometheus.yml中创建不同的作业,其中每个作业都使用指向一个唯一文件的file_sd_configs,该文件包含1/3的目标(如targets1.json、targets2.json和targets3.json(

理想情况下,我希望为file_sd_configs有一个文件,"targets.json",然后使用重新标记/hashmod(或其他什么?(将这些文件平分,并将子集发送到特定的服务器。这是可能的吗?

将其添加到您的relabel配置中:

- 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__

另一种选择是使用负载均衡器。

相关内容

  • 没有找到相关文章

最新更新