Service Discovery

一旦您将所有应用程序的机器上运行了对应的Exporter, prometheus需要知道他们在哪里(IP和port)。 这是普罗米修斯将知道应该监控哪些目标,并能够注意到它是否没有响应。 在动态环境中,您不能简单地提供一次应用程序和Exporter列表,因为它将过时。 这就是服务发现的用武之地。

您可能已经拥有了一些带有数据库和应用的机器。它可能在Chef的数据库中,Ansible的inventory文件,基于EC2实例上的标签,Kubernetes中的标签和注释,或者可能只是坐落在您的维基文档中。

Prometheus与许多常见的服务发现机制集成在一起,例如Kubernetes,EC2和Consul。 对于那些设置稍微偏僻的人来说,还有一个通用的集成。

但这仍然存在问题。 仅仅因为Prometheus有一个机器和服务列表下并不意味着我们知道它们是否适用您的架构。 例如,您可能正在使用EC2 Name tag6来指示在计算机上运行的应用程序,而其他人可能使用名为app的标记。

由于每个组织的工作方式略有不同,Prometheus允许您使用重新标记(relabel)配置服务发现中的元数据如何映射到监控目标及其标签

Last updated