Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Spring boot microservice metrics monitoring

2 018 vues

Publié le

Spring Boot: Microservice Metrics Monitoring

Publié dans : Technologie
  • Identifiez-vous pour voir les commentaires

Spring boot microservice metrics monitoring

  1. 1. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 1 th 김동후 donghu.kim@oracle.com Spring Boot: Microservice Metrics Monitoring 2019.06.15 12 thOracle Developer Meetup
  2. 2. Architecture Evolution: From Monolithic to Microservices Architecture Image Source: https://blogs.sap.com/2015/02/25/microservices-the-dismantle-of-the-monolith/ (Single Unit) (Coarse-grained) (Fine-grained) Monolithic (Pre-SOA) SOA Microservices
  3. 3. Amazon, 2008 Hailo, 2014Netflix, 2012 Twitter, 2013 The Empire Image Source: Netflix: http://codeobsession.blogspot.com/2018/02/architecture-at-different-levels-of.html Twitter: https://blog.twitter.com/engineering/en_us/a/2013/observability-at-twitter.html Hail-o: https://www.instana.com/blog/introducing-dynamic-focus-application-performance-management/ Amazon: https://aws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/sessions/pushing_the_boundaries_1300_microservices_on_aws.pdf The Empire: https://www.ixxiyourworld.com/en/products/ixxi-images/death-star-4/ Death Star Diagrams
  4. 4. Challenges in Microservices Architecture Image Source: https://dzone.com/articles/challenges-in-implementing-microservices
  5. 5. Use the Force.
  6. 6. What to Measure? Metrics Tracing Logging + Fault Tolerance Metrics
  7. 7. 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
  8. 8. Monitoring: Spring Boot Admin Created by a company called Codecentric Open source monitoring software for Spring Boot Actuator
  9. 9. 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
  10. 10. 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.
  11. 11. Monitoring: Prometheus and Grafana https://docs.cloudposse.com/monitoring-and-alerting/prometheus/
  12. 12. 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/
  13. 13. 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
  14. 14. 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.
  15. 15. 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
  16. 16. 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
  17. 17. Spring Boot: Microservices Metrics Monitoring
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. Summary
  24. 24. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 감사합니다 25

×