配置Prometheus(Spring Boot简单客户端)以控制要监视的端点

时间:2018-09-01 21:05:22

标签: java spring-boot prometheus

我们有一个Google Cloud Platform项目,该项目的api部署到kubernetes集群上。该api是一个Java春季启动应用,正在使用Prometheus Java客户端来收集有关该api的指标。

然后,我们使用堆栈驱动程序来显示api性能的仪表板。问题在于,我们已达到500个自定义指标的堆栈驱动程序限制。如集群的GCP日志所示:

component=remote msg="Unrecoverable error sending samples to remote storage" err="rpc error: code = ResourceExhausted desc = Your metric descriptor quota has been exhausted."

似乎Prometheus客户端正在收集端点的度量标准,包括url中的任何参数。这里有几个例子:

# TYPE gauge_response_member_password_reset_b85f877ad38784686173f330045fd994d8b4c09a_37ef2f93_9ea4_4e28_b1cf_e6204ffce2fa gauge
gauge_response_member_password_reset_b85f877ad38784686173f330045fd994d8b4c09a_37ef2f93_9ea4_4e28_b1cf_e6204ffce2fa 1.0

# TYPE gauge_response_member_password_reset_passwordResetToken_clientId gauge
gauge_response_member_password_reset_passwordResetToken_clientId 290.0y

因此,它将为上面的端点创建一个日志,其中包括get url参数中提供的数据,这是对仅具有参数名称的同一端点的度量的补充。

如何配置spring以不收集包含参数数据的端点的度量?因为这就是我们达到堆栈驱动程序限制的原因。

我们使用的是Prometheus的simpleclient插件,目前仅使用现成的设置:

compile group: 'io.prometheus', name: 'simpleclient', version: '0.5.0'

compile group: 'io.prometheus', name: 'simpleclient_spring_boot', version: '0.5.0'

0 个答案:

没有答案