반응형
설명
- 스프링 서버의 Metric 정보를 Prometheus와 연동하여 관리하는 방법을 설명한다.
- Prometheus 참고 : https://sg-choi.tistory.com/604
dependencies
dependencies {
...
implementation 'org.springframework.boot:spring-boot-starter-actuator'
runtimeOnly 'io.micrometer:micrometer-registry-prometheus'
}
application.properties
management.endpoint.metrics.enabled=true
management.endpoints.web.exposure.include=prometheus
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled=true
Custom Metrics 코드 추가
- API 콜 횟수와 같은 Metric 정보를 관리하고 싶으면 아래처럼 코드를 추가한다.
- 필요 없다면 해당 과정은 패스
@RequiredArgsConstructor
@RestController
public class PrometheusDemoController {
private final MeterRegistry meterRegistry;
private Counter counter;
@PostConstruct
public void init() {
counter = meterRegistry.counter("api.call.count");
}
@GetMapping("/api/count")
public void count() {
counter.increment();
}
}
Prometheus Metric Endpoint 확인
- 스프링 서버 실행 및 확인
- 요청
- 응답
{ "_links": { "self": { "href": "http://localhost:8080/actuator", "templated": false }, "prometheus": { // prometheus 항목 확인 "href": "http://localhost:8080/actuator/prometheus", "templated": false } } }
Prometheus 설정 변경
- 아래처럼 설정 변경 후 재시작
vi /home/ubuntu/app/prometheus/prometheus.yml
...
scrape_configs:
...
- job_name: 'spring-app-demo'
metrics_path: '/actuator/prometheus' # 스프링 Prometheus Metric Endpoint 경로 설정
scrape_interval: 10s
static_configs:
- targets: ['localhost:8080'] # 스프링 서버 주소 설정
Prometheus 접속 및 확인
- Prometheus 웹에 접속하여 Expression에 jvm_threads_live_threads 조회하여 확인
- 위의 Custom Metrics 과정의 코드를 추가한 경우 api.call.count 값을 조회하기 위해 Expression에 api_call_count_total을 조회하여 확인
참고
반응형
'Development > Prometheus' 카테고리의 다른 글
[Prometheus] Grafana (0) | 2021.11.30 |
---|---|
[Prometheus] Node Exporter (0) | 2021.11.30 |
[Prometheus] Prometheus (0) | 2021.11.29 |