Spring Cloud(MSA)

그라파나 프로메테우스 연동

lby132 2022. 9. 30. 00:03

spring cloud application에서 설정한

management:
  endpoints:
    web:
      exposure:
        include: prometheus

actuator/prometheus를 가지고 이 정보를 자신이 도식화 시키기 위해서 수집을한다. 그리고 그걸 시계열 DB에 Metrics를 저장한다.

그라파나 라는 모니터링 및 분석을 위한 오픈소스애플리케이션이 프로메테우스와 연동을 해서 프로메테우스에 저장된 시계열 DB를 읽어서 정보를 시각화 해서 보여준다.

 

프로메테우스 yml파일에 설정할 수 있다. 난 세개만 등록했지만 이것보다 더 많은 마이크로 서비스들을 설정할 수도 있다.

- job_name: 'user-service'
scrape_interval: 15s
metrics_path: '/user-service/actuator/prometheus'
static_configs:
- targets: ['localhost:8000']
- job_name: 'order-service'
scrape_interval: 15s
metrics_path: '/order-service/actuator/prometheus'
static_configs:
- targets: ['localhost:8000']
- job_name: 'apigateway-service'
scrape_interval: 15s
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['localhost:8000']

!앞칸 띄어쓰기 잘해주어야 함.

 

터미널에서 ./prometheus --config.file=prometheus.yml 실행 시키고

http://127.0.0.1:9090 으로 띄워보면 프로메테우스 초기 화면이 나온다.

http://127.0.0.1:8000/user-service/actuator/prometheus로 들어가서 

http_server_requests_seconds_count를 검색해보고 http_server_requests_seconds_count값을 프로메테우스에 가서 검색해보면

위에서 yml에 job_name에 설정한 서비스들의 정보들을 볼 수 있다.

시각화 한걸 보기 위해서는 Graph라는 탭을 눌러보면

등록되어 있는 정보들이 시각화되어서 보여진다.

이 탭에서는 시간별로 볼 수도 있다. 스프링 클라우드에 저장되어 있던 정보를 프로메테우스가 가지고 와서 자신만의 시계열 데이터에 보관을 해놨기때문에 언제든지 시간을 돌려서 볼 수 있다.

 

그라파나와 프로메테우스 연동

 

./bin/grafana-server 그라파나 실행

http://127.0.0.1:3000 실행하면 그라파나 홈페이지가 뜬다 초기 아이디/비밀번호는 admin/admin 입력하면 접속됨

설정에 Configuration누르면 AddDataSource클릭하면 아래와 같은 화면이 나오는데 프로메테우스 클릭.

프로메테우스 아이피와 포트번호 입력하고 저장.

 

데시보드에서 +import탭 클릭

 

https://grafana.com/grafana/dashboards/ 접속하면 여러 데시보드들이 나오는데 아무거나 해도 되는데 micrometer를 검색해서

얘 찾아서 오른쪽 하단에 아이디 값 복사해서 아까 위에 그라파나에 대쉬보드 아이디 넣는 곳에 넣어준다. 다시 들어가서

https://grafana.com/grafana/dashboards   Prometheus 2.0 Overview  검색후 이것도 임포트 해준다.

 

spring cloud gateway 도 임포트 해주고 들어가 보면

이럼 화면이 나오는데 모니터링할거 클릭해서 

 

설정해준다. 이건 spring_cloud_gateway_requests_count를 확인하기 위한 쿼리이다. spring_cloud_gateway_requests_count 같이 쓰여질 값이 프로메테우스에 가서 검색하면 나와야한다. 그리고 job=""은 프로메테우스yml에 설정한 apigateway-service에 대한 값이다. 다른것도 이런식으로 설정 하면됨. 조회하고 프로메테우스yml에 서비스를 등록하고 조회 싶은 서비스를 job에 입력해서 모니터링 하면 된다.

이렇게 값들이 나온다.

메모리도 마찬가지. 

'Spring Cloud(MSA)' 카테고리의 다른 글

도커  (1) 2022.09.30
docker 명령어  (1) 2022.09.30
Zipkin  (0) 2022.09.29
아파치 카프카  (0) 2022.09.28
Resilience4J = CircuirtBreaker  (1) 2022.09.28