Agent自动扩容能力说明

Agent副本数量不足可能会导致Agent频繁地因内存溢出而重启,进而导致数据采集延迟甚至丢失。借助可观测监控 Prometheus 版的Agent副本水平自动扩容功能,可以规避这一问题。

Prometheus Agent自动扩容(HPA)的触发时机和策略

Prometheus Agent启动后会进行目标抓取以此获取时间线数量,然后根据每个采集副本的采集能力进行计算所需副本数,若发现需要多副本采集时HPA会实现自动扩容。Prometheus Agent自动扩容的具体策略如下:

  • 当Agent单副本运行时:其Master副本既需要执行Targets服务发现又需要执行Targets抓取,当Master内存达到75%时,则会自动切换为多副本模式,但有时因为Targets一次性抓取太大,会造成Master OOM后再变为多副本。

  • 当Agent多副本运行时:其Master副本仅需执行Targets服务发现,由Worker副本执行Targets抓取。当Worker副本内存使用超过60%时,会进行Targets抓取任务再分配,同时计算出所需的Worker副本数,实现自动扩容,以确保这些Worker副本的平均内存使用不会超过60%。

    说明

    根据多因子协同调度算法,每个Agent每轮可以抓取的总Target数量与总Metrics数量的乘积上限为40亿,内存使用上限为70%。而每个Agent可以抓取的Metrics数量级上限为4,000,000。

如何开启

Prometheus Helm版本升级至v1.0.0或以上后,会自动启用Prometheus Agent HPA。升级Helm版本的具体操作,请参见【组件升级】Helm1.1.17/Agent v4.0.0的升级内容与升级方式

Prometheus Agent自动扩容不会引发Agent采集副本数无上限增加(默认最大采集副本数为30),Prometheus Agent不会执行自动缩容,因为缩容可能会造成数据丢失问题。如需调整Agent副本数,请参见如下步骤。

  1. 登录Prometheus控制台,然后在Prometheus监控的实例列表页面单击目标Prometheus实例名称。

  2. 在左侧导航栏单击设置,在右侧页面单击设置页签。然后单击操作列的副本数,在弹出的对话框中设置Agent副本数,然后单击确定ert

如何验证

调整了Prometheus Agent副本数之后,您可以在Prometheus Agent自监控大盘检查Agent副本数的变化以及Agent相关监控是否正常,具体操作步骤如下。

  1. 登录Prometheus控制台,然后在Prometheus监控的实例列表页面单击目标Prometheus实例名称。

  2. 在左侧导航栏单击大盘列表,单击名称为Prometheus Agent的大盘超链接,即可跳转至Prometheus Agent大盘页面查看Agent自身运行状态、实时和历史指标抓取耗时以及抓取数量、数据发送、资源占用等信息。Agent自监控大盘监控数据的详细信息,请参见Prometheus Agent自监控大盘