8. An Introduction to Metrics Monitoring
Application Metrics
System Metrics
CPU & Memory usage, Network, Disk I/O
, JVM (Threads, Heap, GC), etc
Request Volume, Duration, Size, Error and Timeout,
Latency, Http Error Codes, Health,
Custom (Counter, Timer, Gauge), etc
CNCF Cloud Native Interactive Landscape
9. Monitoring: Spring Boot Admin
Created by a company called Codecentric
Open source monitoring software for Spring Boot Actuator
10. Monitoring: Prometheus
Prometheus is an open-source systems monitoring
and alerting toolkit originally built at SoundCloud
A Monitoring System and Time Series Database
Suited for Containers and Microservices
11. Monitoring: Grafana
Grafana is an open source, feature rich metrics dashboard
and graph editor for Graphite, Elasticsearch,
OpenTSDB, Prometheus and InfluxDB.
Grafana supports over 30 open source and
commercial data sources.
13. Monitoring with Service Discovery
Service discovery is the automatic detection of devices and services offered by these
devices on a computer network. A service discovery protocol (SDP) is a network
protocol that helps accomplish service discovery. Service discovery aims to reduce the
configuration efforts from users. Wikipedia
https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture/
14. Monitoring with Service Discovery
Discovery
Server
Service A
Service C
Service D
Service E
Discovery
Server
Service A
Service C
Service D
Service E
Load
Balancer
REQUEST
REGISTER
QUERY
The Client-Side Discovery Pattern The Server-Side Discovery Pattern
Monitoring
Server
Monitoring
Server
15. Service Discovery: Netflix Eureka
https://coe.gitbook.io/guide/service-discovery/eureka
Eureka is a REST based service that is primarily used
in the AWS cloud for locating services for the purpose
of load balancing and failover of middle-tier servers.
At Netflix, Eureka is used for the following purposes
apart from playing a critical part in mid-tier
load balancing.
16. Service Discovery: Hashicorp Consul
Consul is a service mesh solution providing
a full featured control plane with service discovery,
configuration, and segmentation functionality.
• Service Discovery
• Health Checking
• KV Store
• Secure Service Communication
• Multi Datacenter
17. Spring Boot Actuator and Micrometer
Micrometer
Micrometer is the metrics collection facility included in Spring Boot 2's Actuator
Spring Boot Actuator
Prometheus, AppOptics, Azure Monitor,
Netflix Atlas, CloudWatch, Datadog, Dynatrace,
Elastic, Ganglia, Graphite, Humio, Influx/
Telegraf, JMX, KairosDB, New Relic, SignalFx,
Google Stackdriver, StatsD, and Wavefront.
Think SLF4J,
but for Metrics
To help you
monitor and manage
your Spring application
19. Lab 1: Spring Boot Monitoring with Spring Boot Admin
Love Calculator
Service
Yes-Or-No
Consumer
Love Calculator
Consumer
Love Calculator Application
Love Calculator
Open API
Yes or No
Open API
https://github.com/MangDan/sb-metrics-monitoring-handson
http://localhost:8082/love-calculator-consumer
http://localhost:8083/yes-or-no-consumer
http://localhost:8081/love-calculator
20. LAB Setup
https://github.com/MangDan/sb-metrics-monitoring-handson
1. 전체 프로그램 및 예제 소스 다운로드
2. 설치 및 환경 구성
2.1 Path 설정 (Java, Maven)
2.2 Eclipse STS (Spring Tool Suite) 설정 (Windows는 구성되어 있으며, macOS 사용자는 가이드 참고)
2.3 Eclipse STS 실행 후 프로젝트 확인 (6개)
2.4 서비스 시작 및 테스트
2.5 서비스 종료
오픈된 커맨드 창 종료(닫기)
c:setx path "%PATH%;c:oracle_dev_meetup0615_windowsjdk-12bin;c:oracle_dev_meetup0615_windowsapache-maven-3.6.1bin;
c:cd oracle_dev_meetup0615_windowssts_workspace
c:oracle_dev_meetup0615_windowssts_workspacestart-all-svc.cmd
21. Lab 1: Spring Boot Monitoring with Spring Boot Admin
Love Calculator
Service
Love Calculator
Consumer
Yes-Or-No
Consumer
Spring Boot Admin
/actuator
/actuator
/actuator
Love Calculator
Application
https://github.com/MangDan/sb-metrics-monitoring-handson/blob/master/HOL-PART1.md
1. Spring Boot Admin 서버 프로젝트 생성 (선택) 및 실행
2. 각 서비스별로 pom.xml 의존성(dependency) 설정
3. 각 서비스별로 application.properties 설정
4. 모든 서비스 시작 (start-all-svc.cmd)
5. Spring Boot Admin 서버 시작 및 대시보드 확인
6. 모든 서비스 종료 (커맨드 창 종료/닫기)
http://localhost:8090
22. Lab 2: Spring Boot Monitoring with Eureka and Spring Boot
https://github.com/MangDan/sb-metrics-monitoring-handson/blob/master/HOL-PART2.md
Love Calculator
Service
Love Calculator
Consumer
Yes-Or-No
Consumer
Spring Boot Admin
/actuator
/actuator
/actuator
Love Calculator
Application
Eureka
1. Eureka Server 서버 프로젝트 생성 (선택) 및 시작
2. 각 서비스별로 pom.xml 의존성(dependency) 설정
3. 각 서비스별로 application.properties 설정
4. 각 서비스별로 ~Application.java 설정
5. 서비스 시작 (start-all-svc.cmd)
6. Spring Boot Admin 서버 시작 및 대시보드 확인
http://localhost:8761/eureka
http://localhost:8090
23. Lab 3: Spring Boot Monitoring with Consul and Prometheus, Grafana
https://github.com/MangDan/sb-metrics-monitoring-handson/blob/master/HOL-PART3.md
Love Calculator
Service
Love Calculator
Consumer
Yes-Or-No
Consumer
/actuator
/actuator
/actuator
Love Calculator
Application
Consul
1. Consul 서버 시작
2. 각 서비스별로 pom.xml 의존성(dependency) 설정
3. 각 서비스별로 application.properties 설정
4. 각 서비스별로 ~Application.java 설정
5. 서비스 시작 (start-all-svc.cmd)
6. Prometheus 서버 설정 및 시작
7. Grafana 서버 시작 및 설정, 대시보드 확인
Prometheus
Grafana
http://localhost:9090
http://localhost:3000
http://localhost:8500/ui