springboot 示例项目,端口8080
| 版本 | 说明 |
|---|---|
| latest/jar | 默认为最基本、最简单的示例 |
| jmx/jmx-actuator-prometheus | jmx metrics。提供两种集成方式,访问地址:http://localhost:9082 http://localhost:9081/actuator/prometheus |
FROM myshop/openjdk
ADD springboot-jar-demo-0.0.1.jar /app/
CMD ["sh","-c","java $JAVA_OPTS -jar /app/springboot-jar-demo-0.0.1.jar"]
提供两种集成方式实现prometheus metrics暴露。
参考 https://github.com/prometheus/jmx_exporter
metrics见http://localhost:9082
Dockerfile
FROM myshop/openjdk
ADD jmx_prometheus_javaagent-0.17.0.jar /opt/jmx_exporter/
ADD config.yaml /opt/jmx_exporter/
ADD springboot-jar-demo-0.0.3.jar /app/
CMD ["sh","-c","java -javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.17.0.jar=9082:/opt/jmx_exporter/config.yaml $JAVA_OPTS -jar /app/springboot-jar-demo-0.0.3.jar"]
或者
FROM myshop/jmx-exporter
ADD springboot-jar-demo-0.0.3.jar /app/
CMD ["sh","-c","java -javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.17.0.jar=9082:/opt/jmx_exporter/config.yaml $JAVA_OPTS -jar /app/springboot-jar-demo-0.0.3.jar"]
如果不想改造应用的Dockerfile,可结合初始化容器使用,共享emptydir并copy agent到应用容器,JAVA_OPTS参数配置--agent(jdk一般支持参数 _JAVA_OPTIONS,没有开放变量的话可以使用)
metrics见http://localhost:9081/actuator/prometheus
pom.xml添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
配置文件添加:
management.endpoints.web.exposure.include=prometheus
management.endpoint.health.show-details=always
management.server.port=9081
management.server.ssl.enabled=false
management.server.servlet.context-path=/
spring.jmx.enabled=true
server.tomcat.mbeanregistry.enabled=true
社区为JVM监控提供了较多的方案,如Prometheus JVM Client、JMX exporter、Micrometer Prometheus Registry等。
适用于Spring Boot/Spring Cloud框架,支持任何可以运行在JVM上的语言,如Java, Clojure, Scala, JRuby。 详情见https://github.com/prometheus/client_java
优点在于集成方便,只需要添加依赖和注解实现,也可根据业务需求添加埋点,深度定制Metrics指标,支持四种Metrics类型-Counter, Gauge, Summary和Histogram。
缺点在于对代码有侵入。
Micrometer是一款监控指标的度量类库,它提供的该工具适用于Spring Boot/Spring Cloud框架。Micrometer中, Meter 的具体类型包括: Timer , Counter , Gauge , DistributionSummary , LongTaskTimer , FunctionCounter , FunctionTimer 和 TimeGauge等。
该工具优点在于支持更多的Metrics类型,能覆盖更多的场景,可深度定制。
缺点在于概念理解和集成方式较抽象复杂,对代码有侵入。与actuator的结合更方便使用。
JMX Exporter 利用 Java 的 JMX 机制来读取 JVM 运行时的一些监控数据,然后将其转换为 Prometheus 所认知的 metrics 格式,以便让 Prometheus 对其进行监控采集。 详见https://github.com/prometheus/jmx_exporter
JMX-Exporter 提供了两种用法:以独立的进程启动和以agent的方式启动,推荐后者。
该工具对代码无侵入,适用于java应用,支持java6及以上版本。
To run as a Java agent, download one of the JARs and run: java -javaagent:./jmx_prometheus_javaagent-0.16.1.jar=8080:config.yaml -jar yourJar.jar
Content type
Image
Digest
sha256:ff99bd00e…
Size
85.7 MB
Last updated
about 4 years ago
docker pull myshop/springboot-demo