作者回复: AlertManager一般弄一台就够了(它是有状态的一般不能部两个),挂了暂时没有告警,如果不放心,可以做一套元监控,也就是单独再搭一套Prometheus+AlertManager,由它去监控原来那套Prometheus+AlertManager。Grafana也不太要紧,一般部两个做HA躲在nginx后面即可(https://grafana.com/docs/tutorials/ha_setup/)。
作者回复: 两个方案,一个是采用Promethues的服务发现ServiceDiscovery机制,可以发现具体的服务实例然后采集metrics,可能需要针对云服务的API进行扩展,具体可以参考https://github.com/prometheus/prometheus/tree/master/discovery,这里已经有一些云服务对接支持。第二方案是采用push模式,让客户端直接把metrics push出来到Promethues的Push Gateway,这个Promethues也是支持的。
作者回复: 不直接支持,除非你定制Prometheus的源码。建议开发一个SideCar(比如用java),这个SideCar和Prometheus住在一个机器上,两个进程,这个SideCar可以对接读取Apollo的配置,然后更新Prometheus的本地配置文件,Promethues可以感知配置文件的变化并动态加载。这个工作量不是很大。