SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Glowroot, le petit APM qui
vous veut du bien
Henri Gomez
@hgomez
Eleveur d’infrastructures
Qui suis-je ?
Je s’appelle Glowroot
https://glowroot.org
APM
OpenSource (ASL 2.0)
Glowroot
Un APM, qu’est-ce donc ?
Application Performance Management (*)
Outillage de mesure des performances d’une application
Terme principal : TPS (Transaction/s)
Un APM c’est cher
Oui mais ça c’était avant Glowroot
Un APM c’est un outil d’Ops
Ops - SLA, Tuning Prod
QA - Préprod, Réduction du taux de WTF
Dev - Run à fond
Glowroot, APM Java
Agent Java
Mode Autonome ou connecté (Central)
Overhead marginal < 10us
Surcoût mémoire minime ~ 2ko
Glowroot, Overhead
xxxxx
Benchmarks
En mode autonome
Un web server sur le port 4000
En Dev sans mode debug (pleine vitesse)
En QA pour remonter rapidement des hotspots
En Prod sur une VM ou container
Java Agent, mode autonome
Exemple pour Tomcat
#
# Injection de l’Agent Glowroot
#
export CATALINA_OPTS="-javaagent:/path/to/glowroot.jar $CATALINA_OPTS"
Astuce: Pour Tomcat, dans bin/setenv.sh (créer le fichier et le rendre
executable)
En mode connecté
Connecté à Glowroot Central (HTTP/2 - gRPC)
Pré-requis un Cassandra >= 2.1
Pour suivre l’activité d’une ferme d’applications
Groupement des applications via glowroot.agent.rollup.id
Specification de l’instance via glowroot.agent.id
Connecté à Glowroot Central
Java Agent, mode connecté
Exemple pour Tomcat
#
# Glowroot using Central
#
export CATALINA_OPTS="-javaagent:/path/to/glowroot/glowroot.jar 
-Dglowroot.agent.id=tomcat 
-Dglowroot.agent.rollup.id=app-voxxedlu2018 
-Dglowroot.collector.address=central:8181 
$CATALINA_OPTS"
Glowroot Central en Cluster
Java Agent, connecté & cluster
Exemple pour Tomcat
#
# Glowroot using Dual Central
#
export CATALINA_OPTS="-javaagent:/path/to/glowroot/glowroot.jar 
-Dglowroot.agent.id=tomcat 
-Dglowroot.agent.rollup.id=app-voxxedlu2018 
-Dglowroot.collector.address=http://central1:8181,http://central2:8181 
$CATALINA_OPTS"
Demo time !
Glowroot, API Agent
<dependency>
<groupId>org.glowroot</groupId>
<artifactId>glowroot-agent-api</artifactId>
<version>0.10.11</version>
</dependency>
@Instrumentation.Timer("process invoice")
void processInvoice(Invoice invoice) {
...
}
@Instrumentation.TraceEntry(message = "process invoice: {{0.invoiceNumber}}",
timer = "process invoice")
void processInvoice(Invoice invoice) {
...
}
void processInvoice(Invoice invoice) {
Glowroot.setTransactionName("Process Invoice");
...
}
Glowroot, en résumé
Simplissime à déployer
Agent Java
Mode Autonome ou Connecté
Déclenchement sur dépassement seuils
Pas d’impact sur le run (3us-20ko/req)
Glowroot, mais encore
Support natif des pistes d'exécution standards
Ajout à la volée de nouvelles pistes d'exécution
Multi protocoles (JDBC, Elastic, Cassandra ..)
Multi frameworks (Servlet, Netty, Play 1&2, VertX …)
Multi Serveurs App (Tomcat, Wildfly, Payara…)
Merci

Contenu connexe

Tendances

How to Build a High Performance Application with PHP and Swoole?
How to Build a High Performance Application with PHP and Swoole?How to Build a High Performance Application with PHP and Swoole?
How to Build a High Performance Application with PHP and Swoole?
Albert Chen
 

Tendances (20)

gRPC on .NET Core - NDC Sydney 2019
gRPC on .NET Core - NDC Sydney 2019gRPC on .NET Core - NDC Sydney 2019
gRPC on .NET Core - NDC Sydney 2019
 
Logging system of Android
Logging system of AndroidLogging system of Android
Logging system of Android
 
初探 Elastic Observability 的實踐方法
初探 Elastic Observability 的實踐方法初探 Elastic Observability 的實踐方法
初探 Elastic Observability 的實踐方法
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조
 
Schedulers and Timers in Akka
Schedulers and Timers in AkkaSchedulers and Timers in Akka
Schedulers and Timers in Akka
 
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향
 
Monitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusMonitoring Kubernetes with Prometheus
Monitoring Kubernetes with Prometheus
 
自宅vSphereからニフクラに引っ越ししてみた
自宅vSphereからニフクラに引っ越ししてみた自宅vSphereからニフクラに引っ越ししてみた
自宅vSphereからニフクラに引っ越ししてみた
 
Webアプリケーション開発者のためのDockerハンズオン20210519
Webアプリケーション開発者のためのDockerハンズオン20210519Webアプリケーション開発者のためのDockerハンズオン20210519
Webアプリケーション開発者のためのDockerハンズオン20210519
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for Documentation
 
Hadoop and Kerberos
Hadoop and KerberosHadoop and Kerberos
Hadoop and Kerberos
 
Testing Ansible with Jenkins and Docker
Testing Ansible with Jenkins and DockerTesting Ansible with Jenkins and Docker
Testing Ansible with Jenkins and Docker
 
DevOps @ OpenShift Online
DevOps @ OpenShift OnlineDevOps @ OpenShift Online
DevOps @ OpenShift Online
 
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
 
How to Build a High Performance Application with PHP and Swoole?
How to Build a High Performance Application with PHP and Swoole?How to Build a High Performance Application with PHP and Swoole?
How to Build a High Performance Application with PHP and Swoole?
 
Paxos
PaxosPaxos
Paxos
 
和艦長一起玩轉 GitLab & GitLab Workflow
和艦長一起玩轉 GitLab & GitLab Workflow和艦長一起玩轉 GitLab & GitLab Workflow
和艦長一起玩轉 GitLab & GitLab Workflow
 
DevOps Roadmap.pptx
DevOps Roadmap.pptxDevOps Roadmap.pptx
DevOps Roadmap.pptx
 
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
 

Similaire à Glowroot, le petit APM qui vous veut du bien

PyConFR - testons en python
PyConFR - testons en pythonPyConFR - testons en python
PyConFR - testons en python
gburet
 

Similaire à Glowroot, le petit APM qui vous veut du bien (20)

Glowroot, le petit APM qui vous veut du bien
Glowroot, le petit APM qui vous veut du bienGlowroot, le petit APM qui vous veut du bien
Glowroot, le petit APM qui vous veut du bien
 
Je s'appelle Glowroot - LyonJUG Oct 2018
Je s'appelle Glowroot - LyonJUG Oct 2018Je s'appelle Glowroot - LyonJUG Oct 2018
Je s'appelle Glowroot - LyonJUG Oct 2018
 
Push Notification
Push Notification Push Notification
Push Notification
 
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
 
RennesJS Talk webperf by Dareboost
RennesJS Talk webperf by DareboostRennesJS Talk webperf by Dareboost
RennesJS Talk webperf by Dareboost
 
Meetup PM2 @delicious-insights
Meetup PM2 @delicious-insightsMeetup PM2 @delicious-insights
Meetup PM2 @delicious-insights
 
Xhprof
XhprofXhprof
Xhprof
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Push notification
Push notificationPush notification
Push notification
 
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !
 
Supervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.comSupervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.com
 
OW2 JASMINe
OW2 JASMINeOW2 JASMINe
OW2 JASMINe
 
Google App Engine For Java
Google App Engine For JavaGoogle App Engine For Java
Google App Engine For Java
 
Formation Google App Engine
Formation Google App EngineFormation Google App Engine
Formation Google App Engine
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven
 
PyConFR - testons en python
PyConFR - testons en pythonPyConFR - testons en python
PyConFR - testons en python
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 

Plus de Henri Gomez

From ci to cd - LavaJug 2012
From ci to cd  - LavaJug 2012From ci to cd  - LavaJug 2012
From ci to cd - LavaJug 2012
Henri Gomez
 
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Henri Gomez
 

Plus de Henri Gomez (13)

SRE - Mythes et Réalités - Volcamp 2023.pdf
SRE - Mythes et Réalités - Volcamp 2023.pdfSRE - Mythes et Réalités - Volcamp 2023.pdf
SRE - Mythes et Réalités - Volcamp 2023.pdf
 
20200225 bbl-docker-packaging-natif
20200225 bbl-docker-packaging-natif20200225 bbl-docker-packaging-natif
20200225 bbl-docker-packaging-natif
 
From ci to cd - LavaJug 2012
From ci to cd  - LavaJug 2012From ci to cd  - LavaJug 2012
From ci to cd - LavaJug 2012
 
From ci to cd
From ci to cdFrom ci to cd
From ci to cd
 
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
 
20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif
 
20111220 lyon jug-devops-culture
20111220 lyon jug-devops-culture20111220 lyon jug-devops-culture
20111220 lyon jug-devops-culture
 
20111205 breizh jug-devops
20111205 breizh jug-devops20111205 breizh jug-devops
20111205 breizh jug-devops
 
20111205 breizh jug-packaging-natif
20111205 breizh jug-packaging-natif20111205 breizh jug-packaging-natif
20111205 breizh jug-packaging-natif
 
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
 
DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011
DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011
DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011
 
DevOps - Retour d'expérience - GenevaJug du 30 Aout 2011
DevOps - Retour d'expérience - GenevaJug du 30 Aout 2011DevOps - Retour d'expérience - GenevaJug du 30 Aout 2011
DevOps - Retour d'expérience - GenevaJug du 30 Aout 2011
 
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
 

Dernier (6)

pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdfpdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
le probleme de la planification JSP exposee (2) (2).pptx
le probleme de la planification JSP exposee (2) (2).pptxle probleme de la planification JSP exposee (2) (2).pptx
le probleme de la planification JSP exposee (2) (2).pptx
 
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
mémoire genie civil presenté lors de la soutenance de mémoire
mémoire genie civil presenté lors de la soutenance de mémoiremémoire genie civil presenté lors de la soutenance de mémoire
mémoire genie civil presenté lors de la soutenance de mémoire
 

Glowroot, le petit APM qui vous veut du bien