如何将spark的jvm度量发送到kubernetes中的prometheus

txu3uszq  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(448)

我用spark操作符在kubernetes上运行spark(https://github.com/googlecloudplatform/spark-on-k8s-operator)
我试图在spark驱动程序和执行器pods中运行java代理,并通过kubernetes服务将度量发送给prometheus操作员。
我用这个例子https://github.com/googlecloudplatform/spark-on-k8s-operator/blob/master/examples/spark-pi-prometheus.yaml
java代理在短时间内公开了端口8090上的度量(我可以验证使用端口转发kubctl port forward8090:8090时的情况),而且服务也公开了几分钟的度量(可以验证使用端口转发kubctl port forward svc/8090:8090时的情况)。
普罗米修斯能够在普罗米修斯中注册这些pod的url,但是当它试图获取度量(每30秒运行一次)时,pod的url就被关闭了。
如何使java代理jmx导出器长时间运行,直到驱动程序和执行程序完成任务。你能在这里指导或帮助我吗,谁曾经遇到过这种情况?

1qczuiv0

1qczuiv01#

有人告诉我,要么普罗米修斯需要每5秒刮一次度量值(很可能度量值不准确),要么你需要使用pushgateway,就像在这个博客中提到的那样(https://banzaicloud.com/blog/spark-monitoring/)把指标推给普罗米修斯
把这些指标推到美国,是就业的最佳实践。对于长时间运行的服务(例如:rest服务),从prometheus获取度量是最好的方法

相关问题