maven - 如何从 Java (Spring boot) 应用程序向 Prometheus 公开指标

标签 maven spring-boot instrumentation grafana prometheus

我的 Spring-Boot 应用程序只有一个计数器指标。我只是不知道如何将这些信息发送给 Prometheus。我正在使用 Maven(构建工具)和 Spring Boot(Java)。

最佳答案

Prometheus 和 Graphite 一样,是一个时间序列存储引擎。

然后 Grafana 可以查询 Prometheus 以生成图形和警报。

https://prometheus.io/docs/introduction/faq/

正如文档所引用的,与其他指标存储系统不同,Prometheus 使用(有争议的)“拉”模型。

这意味着必须下载/安装一个(独立的)Prometheus 服务器。然后,该服务器定期向应用服务器列表(例如 Java SpringBoot 服务器)发出 HTTP GET 请求(拉取)以获取(内存中)存储的指标。

引用:https://prometheus.io/docs/introduction/faq/#why-do-you-pull-rather-than-push?

因此,(Spring Boot)应用程序必须公开 Prometheus 服务器可以从中提取的指标端点(默认为/metrics)。

引用:https://github.com/prometheus/client_java

因此,谷歌上有很多可用的文档,但这就是(可以说是令人费解的)拓扑——以及来自 SoundCloud 和 Prometheus 的人关于为什么“拉”模型比“推”更受欢迎的论点,就像其他所有指标框架所采用的那样。

关于maven - 如何从 Java (Spring boot) 应用程序向 Prometheus 公开指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47559338/

相关文章:

java - 我可以根据平台定制 Maven 构建吗?

linux - Maven 构建使用/分配大量内存

java - OSGi 对于模块化 Web 项目来说是否过大?

java - 我如何正确配置maven多模块项目

Java - ClassFileTransformer.transform(...) 并发调用相同的 classLoader className 对

c++ - 自定义 "base"项目的事件检测 list 以满足 "derived"项目的需要

java - 在运行时动态创建子类

java - 为什么 SLF4J 标记已被删除,但仍可见

jpa - Spring启动数据jpa多个数据源entityManagerFactory错误

spring boot rest tomcat部署报错