SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
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
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
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
Challenges in Microservices Architecture
Image Source: https://dzone.com/articles/challenges-in-implementing-microservices
Use the Force.
What to Measure?
Metrics
Tracing
Logging
+ Fault
Tolerance
Metrics
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
Monitoring: Spring Boot Admin
Created by a company called Codecentric
Open source monitoring software for Spring Boot Actuator
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
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.
Monitoring: Prometheus and Grafana
https://docs.cloudposse.com/monitoring-and-alerting/prometheus/
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/
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
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.
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
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
Spring Boot: Microservices Metrics Monitoring
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
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
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
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
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
Summary
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted
감사합니다
25

Weitere ähnliche Inhalte

Was ist angesagt?

Microsoft Azure Active Directory
Microsoft Azure Active DirectoryMicrosoft Azure Active Directory
Microsoft Azure Active Directory
David J Rosenthal
 

Was ist angesagt? (20)

Microsoft Azure Active Directory
Microsoft Azure Active DirectoryMicrosoft Azure Active Directory
Microsoft Azure Active Directory
 
Exploring the Salesforce REST API
Exploring the Salesforce REST APIExploring the Salesforce REST API
Exploring the Salesforce REST API
 
Azure IAAS architecture with High Availability for beginners and developers -...
Azure IAAS architecture with High Availability for beginners and developers -...Azure IAAS architecture with High Availability for beginners and developers -...
Azure IAAS architecture with High Availability for beginners and developers -...
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SRE
 
AWS Cloud Assessment
AWS Cloud AssessmentAWS Cloud Assessment
AWS Cloud Assessment
 
Road to (Enterprise) Observability
Road to (Enterprise) ObservabilityRoad to (Enterprise) Observability
Road to (Enterprise) Observability
 
DevOps Transition Strategies
DevOps Transition StrategiesDevOps Transition Strategies
DevOps Transition Strategies
 
Full Stack Monitoring with Azure Monitor
Full Stack Monitoring with Azure MonitorFull Stack Monitoring with Azure Monitor
Full Stack Monitoring with Azure Monitor
 
Metrics to Power DevOps
Metrics to Power DevOpsMetrics to Power DevOps
Metrics to Power DevOps
 
Disaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache KafkaDisaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache Kafka
 
Azure DevOps Presentation
Azure DevOps PresentationAzure DevOps Presentation
Azure DevOps Presentation
 
Rancher Labs - Your own PaaS in action
Rancher Labs - Your own PaaS in actionRancher Labs - Your own PaaS in action
Rancher Labs - Your own PaaS in action
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - Observability
 
Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!
 
Mastering Azure Monitor
Mastering Azure MonitorMastering Azure Monitor
Mastering Azure Monitor
 
Red Hat: Three Pillars of Integration
Red Hat:  Three Pillars of IntegrationRed Hat:  Three Pillars of Integration
Red Hat: Three Pillars of Integration
 
Elastic-Engineering
Elastic-EngineeringElastic-Engineering
Elastic-Engineering
 
Multi Cloud Architecture Approach
Multi Cloud Architecture ApproachMulti Cloud Architecture Approach
Multi Cloud Architecture Approach
 
With events to a modern integration architecture
With events to a modern integration architectureWith events to a modern integration architecture
With events to a modern integration architecture
 
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
 

Ähnlich wie Spring boot microservice metrics monitoring

Surekha_haoop_exp
Surekha_haoop_expSurekha_haoop_exp
Surekha_haoop_exp
surekhakadi
 
COMPRO- WEB ALBUM & MOTION ANALYZER
COMPRO- WEB ALBUM  & MOTION ANALYZERCOMPRO- WEB ALBUM  & MOTION ANALYZER
COMPRO- WEB ALBUM & MOTION ANALYZER
Ashish Tanwer
 

Ähnlich wie Spring boot microservice metrics monitoring (20)

Build12 factorappusingmp
Build12 factorappusingmpBuild12 factorappusingmp
Build12 factorappusingmp
 
Cloud APIs Overview Tucker
Cloud APIs Overview   TuckerCloud APIs Overview   Tucker
Cloud APIs Overview Tucker
 
Simplify DevOps with Microservices and Mobile Backends.pptx
Simplify DevOps with Microservices and Mobile Backends.pptxSimplify DevOps with Microservices and Mobile Backends.pptx
Simplify DevOps with Microservices and Mobile Backends.pptx
 
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps DeploymentsDon't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
 
Microservices
MicroservicesMicroservices
Microservices
 
Monoliths to Microservices with Jave EE and Spring Boot
Monoliths to Microservices with Jave EE and Spring BootMonoliths to Microservices with Jave EE and Spring Boot
Monoliths to Microservices with Jave EE and Spring Boot
 
8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box
 
Session 41 - Struts 2 Introduction
Session 41 - Struts 2 IntroductionSession 41 - Struts 2 Introduction
Session 41 - Struts 2 Introduction
 
Building 12-factor Cloud Native Microservices
Building 12-factor Cloud Native MicroservicesBuilding 12-factor Cloud Native Microservices
Building 12-factor Cloud Native Microservices
 
Surekha_haoop_exp
Surekha_haoop_expSurekha_haoop_exp
Surekha_haoop_exp
 
All About Microservices and OpenSource Microservice Frameworks
All About Microservices and OpenSource Microservice FrameworksAll About Microservices and OpenSource Microservice Frameworks
All About Microservices and OpenSource Microservice Frameworks
 
Struts 2 - Introduction
Struts 2 - Introduction Struts 2 - Introduction
Struts 2 - Introduction
 
COMPRO- WEB ALBUM & MOTION ANALYZER
COMPRO- WEB ALBUM  & MOTION ANALYZERCOMPRO- WEB ALBUM  & MOTION ANALYZER
COMPRO- WEB ALBUM & MOTION ANALYZER
 
Vijay Oscon
Vijay OsconVijay Oscon
Vijay Oscon
 
"Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?""Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?"
 
03 monoliths to microservices with java ee and spring boot
03 monoliths to microservices with java ee and spring boot03 monoliths to microservices with java ee and spring boot
03 monoliths to microservices with java ee and spring boot
 
Microservices with kubernetes @190316
Microservices with kubernetes @190316Microservices with kubernetes @190316
Microservices with kubernetes @190316
 
Developing microservices with Java and applying Spring security framework and...
Developing microservices with Java and applying Spring security framework and...Developing microservices with Java and applying Spring security framework and...
Developing microservices with Java and applying Spring security framework and...
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
 

Mehr von Oracle Korea

Mehr von Oracle Korea (20)

Oracle Blockchain Platform_Wonjo Yoo
Oracle Blockchain Platform_Wonjo YooOracle Blockchain Platform_Wonjo Yoo
Oracle Blockchain Platform_Wonjo Yoo
 
Oracle Blockchain_JaeHo Park_CTO
Oracle Blockchain_JaeHo Park_CTOOracle Blockchain_JaeHo Park_CTO
Oracle Blockchain_JaeHo Park_CTO
 
Oracle cloud data interface
Oracle cloud data interfaceOracle cloud data interface
Oracle cloud data interface
 
On premise db & cloud database
On premise db & cloud databaseOn premise db & cloud database
On premise db & cloud database
 
Opentracing jaeger
Opentracing jaegerOpentracing jaeger
Opentracing jaeger
 
Which Questions We Should Have
Which Questions We Should HaveWhich Questions We Should Have
Which Questions We Should Have
 
Oracle NoSQL
Oracle NoSQLOracle NoSQL
Oracle NoSQL
 
Enterprise Postgres
Enterprise PostgresEnterprise Postgres
Enterprise Postgres
 
MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발
 
API Design Principles Essential 
API Design Principles Essential API Design Principles Essential 
API Design Principles Essential 
 
CI/CD 기반의 Microservice 개발
 CI/CD 기반의 Microservice 개발 CI/CD 기반의 Microservice 개발
CI/CD 기반의 Microservice 개발
 
kubernetes from beginner to advanced
kubernetes  from beginner to advancedkubernetes  from beginner to advanced
kubernetes from beginner to advanced
 
OpenJDK & Graalvm
OpenJDK & GraalvmOpenJDK & Graalvm
OpenJDK & Graalvm
 
Cloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm OverviewCloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm Overview
 
Eclipse MicroProfile 과 Microservice Java framework – Helidon
Eclipse MicroProfile 과 Microservice Java framework – HelidonEclipse MicroProfile 과 Microservice Java framework – Helidon
Eclipse MicroProfile 과 Microservice Java framework – Helidon
 
times ten in-memory database for extreme performance
times ten in-memory database for extreme performancetimes ten in-memory database for extreme performance
times ten in-memory database for extreme performance
 
[Main Session] 카프카, 데이터 플랫폼의 최강자
[Main Session] 카프카, 데이터 플랫폼의 최강자[Main Session] 카프카, 데이터 플랫폼의 최강자
[Main Session] 카프카, 데이터 플랫폼의 최강자
 
[Demo session] 관리형 Kafka 서비스 - Oracle Event Hub Service
[Demo session] 관리형 Kafka 서비스 - Oracle Event Hub Service[Demo session] 관리형 Kafka 서비스 - Oracle Event Hub Service
[Demo session] 관리형 Kafka 서비스 - Oracle Event Hub Service
 
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
 
[Main Session] 보안을 고려한 애플리케이션 개발 공정 및 실무적 수행 방법 소개
[Main Session] 보안을 고려한 애플리케이션 개발 공정 및 실무적 수행 방법 소개 [Main Session] 보안을 고려한 애플리케이션 개발 공정 및 실무적 수행 방법 소개
[Main Session] 보안을 고려한 애플리케이션 개발 공정 및 실무적 수행 방법 소개
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Spring boot microservice metrics monitoring

  • 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. 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. 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. Challenges in Microservices Architecture Image Source: https://dzone.com/articles/challenges-in-implementing-microservices
  • 6.
  • 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.
  • 12. Monitoring: Prometheus and Grafana https://docs.cloudposse.com/monitoring-and-alerting/prometheus/
  • 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
  • 18. Spring Boot: Microservices Metrics Monitoring
  • 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
  • 25. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 감사합니다 25