採集Java程式JVM資訊
建立 Spring Boot Application 應用程式
進行 https://start.spring.io 使用版本 Spring Boot v2.7.11和JDK 17,並建立一個具有以下依賴項的簡單JAVA應用程式。
- Spring Boot Actuator (Ops)
- Prometheus (Observability)
- Spring Web (Optional: only to create a simple REST controller.)
Maven POM 會生成以下依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<scope>runtime</scope>
</dependency>
接下來,我們需要公開一個執行器端點,Prometheus將透過該端點以Prometheus能夠理解的格式收集指標資料。為此,我們需要新增以下屬性。
management.endpoints.web.exposure.include=prometheus
接下來,讓我們新增一個簡單的控制器和一個簡單的介面端點。
@RestController
@SpringBootApplication
public class MonitorApplication {
public static void main(String[] args) {
SpringApplication.run(MonitorApplication.class, args);
}
@GetMapping("/hello")
public String hello() {
return "Hello World!";
}
}
現在,讓我們啟動應用程式並開啟以下URL。
http://localhost:8080/actuator/prometheus
開啟上述端點後,您將發現以下格式的一些指標資料,例如:
jvm_memory_used_bytes{area="heap",id="G1 Survivor Space",} 1005592.0