我已经达到了需要将我的普罗米修斯分成小片的时刻。 我一直在阅读它here,但它没有说任何关于kubernetes缩放的内容。以下是我的设置:
并且有大约50个名称空间可以产生数千个指标,而一个目前的设置只有一个prometheus是不够的。所以我决定把它分成三个例子:
但是在我意识到那些指标被kubernetes_sd_config刮掉后,我无法分辨出哪些指标我想要通过哪个prometheus或我错了。 一种解决方案是将kubernetes集群拆分为较小的集群,但现在它的工作量太大了。
所以我的问题是,是否有可能告诉普罗米修斯我只需要抓kube state metrics,node exporter或本地kubernetes指标?
答案 0 :(得分:2)
另一种选择是进行水平可扩展的分布式Prometheus实现:https://github.com/weaveworks/cortex(NB我写了这个。)
它尚未准备好迎接黄金时段,但我们在内部使用它并获得相当不错的结果。设置和操作比上游普罗米修斯更加努力,但它应该无限期地扩展 - 而且我们在Kubernetes上运行的更多,所以它真的在那里。
如果您有兴趣,请告诉我,我可以通过设置来引导您。
答案 1 :(得分:1)
Kubernetes的缩放与其他地方相同。这是一个使用服务发现和重新标记来挑选受监控内容的问题。
例如,节点导出器的配置应该已经是一个单独的scrape_config,因此通过拆分配置文件,将其拆分为单独的Prometheus应该是直截了当的。
答案 2 :(得分:0)
我有一个类似的联邦任务。以下是@ brian-brazil的回答:
master
prometheus
scrape_configs:
- job_name: dc_prometheus
honor_labels: true
metrics_path: /federate
params:
match[]:
- '{job="my-kubernetes-job"}'
static_configs:
- targets:
- prometheus-slaveA:9090
- prometheus-slaveB:9090
看看奴隶是如何在这里宣布的。这肯定是非常静态的。
此外,match[]
param告诉我们抓住所有从属指标。当然,你必须比那更聪明。
slaves
:
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_slave]
action: keep
regex: slaveA
和slaveB类似,等等。
现在,对于每个广告连播,您将拥有prometheus.io/scrape: true|false
,而不是众所周知的注释prometheus.io/slave: slaveA|slaveB
。
我在这里详细描述了它:http://devlog.qaraywa.net/?p=176