반응형

설명

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

+ Recent posts