Turbin , Hystrix는 예전에 쓰던것이다.
ms에서 생성되는 Hystrix 클라이언트 스트림 메시지를 터빈 서버로 수집함
MicroMeter
@GetMapping("/welcome")
@Timed(value = "users.welcome",longTask = true)
public String welcome() {
return greeting.getMessage();
}
management:
endpoints:
web:
exposure:
include: refresh, health, beans, busrefresh , info, metrics, prometheus
application.yml 설정에서 actuator 가 metrics url로 해당 메소드의 정보를 받아올 수 있는 url을 "user.welcome"으로 제공해준다.
Prometheus, Grafana
프로메테우스는 Metrics 를 수집하고 모니터링 및 알람에 사용되는 앱이다. 쿠베에서도 여러 ms의 metrics들을 service discovery의 도움을 받아서 정보들을 수집해오고 , pod같은게 down 되면 slack등으로 알람을 보내준다.
Pull 방식의 구조(위의 쿠베환경에서 지속적으로 정보를 끌어옴) + Metrics Exporter가 제공 (http url로 제공)
시계열 db이고 저장된것들을 query할 수 있다.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
- job_name: "user-service"
spcrape_interval: 15s
metrics_path: "/user-service/actuator/prometheus"
static_configs:
- targets: ["localhost:8000"]
- job_name: "apigateway-service"
spcrape_interval: 15s
metrics_path: "/actuator/prometheus"
static_configs:
- targets: ["localhost:8000"]
- job_name: "order-service"
spcrape_interval: 15s
metrics_path: "/order-service/actuator/prometheus"
static_configs:
- targets: ["localhost:8000"]
actuator에서 제공해주는 actuator/promethus 가져올 수 있게 prometheus.yml에 설정을 해준다.
docker로 prometheus를 띄우는 겨웅 localhost라 적으면 제대로 찾지못할 수도 있다. wsl2의 ifconfig해서 나오는 주소로 입력해주자
grafana 같은 경우에는 wsl2에서 기동이 되지 않아서 docker로 기동했다.
host -> wsl2 에서 localhost:9090( prometheus 서버 접속) 은 가능하지만
wsl2안의 docker에서 돌고 있는 grafana 에서 localhost:9090 의 접속은 prometheus가 아니게 된다. 따라서 wsl2의 ip:9090을 해줘야 add datasource를 할 수 있게 된다.
위 빨간 동그라미 두곳을 잘 설정해줘야 프로메테우스에서 query해온 값과 동일하게 얻을 수 있다.
job은 prometheus.yml에서 설정한 job을 쓸수 있다.
앞에 sum안에 들어간 인자는 actuator/pormetheus 에서 제공하는 정보이다.
'Cloud > SpringCloud로 개발하는 MSA' 카테고리의 다른 글
MS 들 dockerize + window local mysql data -> wsl2 docker mysql + kafka listener (0) | 2022.11.09 |
---|---|
장애 처리와 MS 분산 추적 (0) | 2022.11.04 |
MS간의 data 동기화 (2. kafka 응용) (1) | 2022.11.03 |
MS간의 data 동기화 (1. kafka 기본 이론) (0) | 2022.11.02 |
MS간 통신 (0) | 2022.10.29 |