Prometheus採集Java程式指標資訊

YOYOFx發表於2023-05-15

採集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

相關文章