SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Je s’appelle Glowroot
Henri Gomez @hgomez
LyonJUG - 24 Octobre 2018
Qui suis-je ?
Dev, QA, Ops, CI/CD
Actuellement éleveur d’infrastructure chez
En charge notamment de
https://github.com/hgomez
@hgomez
LyonJUG - 24 Octobre 2018
APM
https://glowroot.org
OpenSource (ASL 2.0)
Glowroot
LyonJUG - 24 Octobre 2018
Un APM, qu’est-ce donc ?
Application Performance Management (*)
Outillage de mesure des performances d’une application
Terme principal : TPS (Transaction/s)
LyonJUG - 24 Octobre 2018
Un APM c’est cher
Oui mais ça c’était avant Glowroot
LyonJUG - 24 Octobre 2018
Un APM c’est un outil d’Ops
Ops - SLA, Tuning Prod
QA - Préprod, Réduction du taux de WTF
Dev - Run à fond
LyonJUG - 24 Octobre 2018
Glowroot, c’est surpuissant
Accès à l’instrumentation JVM instruments et MBeans
Multi frameworks (Servlet, Netty, Play 1&2, VertX …)
Multi protocoles (JDBC, Elastic, Cassandra ..)
Multi App Server (Tomcat, Jetty, Wildfly, Payara…)
Détection des pistes d’exécutions standard (servlet, quartz …)
Ajout de pistes d'exécutions à la volée
LyonJUG - 24 Octobre 2018
Glowroot, APM Java
Agent Java
Mode Autonome ou connecté (Central)
Overhead marginal < 10us
Surcoût mémoire minime ~ 2ko
LyonJUG - 24 Octobre 2018
Glowroot, Overhead
Benchmarks
LyonJUG - 24 Octobre 2018
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, un container, oneshot mode
En mode autonome
LyonJUG - 24 Octobre 2018
Stockage local dans H2 DB, à éviter sur de longues périodes
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
exécutable)
LyonJUG - 24 Octobre 2018
Java Agent, mode autonome - port Web
Par défaut 4000, peut être défini dans admin.json
"web": {
"port": 4000,
"bindAddress": "127.0.0.1",
"contextPath": "/",
"sessionTimeoutMinutes": 30,
"sessionCookieName": "GLOWROOT_SESSION_ID"
LyonJUG - 24 Octobre 2018
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
LyonJUG - 24 Octobre 2018
Connecté à Glowroot Central
LyonJUG - 24 Octobre 2018
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"
LyonJUG - 24 Octobre 2018
Glowroot Central en Cluster
LyonJUG - 24 Octobre 2018
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"
LyonJUG - 24 Octobre 2018
# Glowroot Agent injection pour SonarQube Web dans sonar.properties
sonar.web.javaAdditionalOpts=
-javaagent:/path/to/glowroot/glowroot.jar 
-Dglowroot.multi.dir=true 
-Dglowroot.agent.id=web 
-Dglowroot.agent.rollup.id=sqdev
# Glowroot Agent injection pour SonarQube ComputeEngine dans sonar.properties
sonar.ce.javaAdditionalOpts=
-javaagent:/path/to/glowroot/glowroot.jar 
-Dglowroot.multi.dir=true 
-Dglowroot.agent.id=ce 
-Dglowroot.agent.rollup.id=sqdev
Java Agent, connecté, plusieurs jvm locales
LyonJUG - 24 Octobre 2018
Depuis la 0.11.x, il faut spécifier -Dglowroot.multi.dir=true
Demo time !
LyonJUG - 24 Octobre 2018
Glowroot, API Agent
<dependency>
<groupId>org.glowroot</groupId>
<artifactId>glowroot-agent-api</artifactId>
<version>0.10.11</version>
</dependency>
void processInvoice(Invoice invoice) {
Glowroot.setTransactionName("Process Invoice");
...
}
@Instrumentation.Timer("process invoice")
void processInvoice(Invoice invoice) {
...
}
@Instrumentation.TraceEntry(message = "process invoice: {{0.invoiceNumber}}",
timer = "process invoice")
void processInvoice(Invoice invoice) {
...
}
LyonJUG - 24 Octobre 2018
Glowroot c’est
Pour tous
Simplissime à déployer
Mode Autonome ou Connecté
Déclenchement sur dépassement de seuils
Pas d’impact sur le run (<10us-2ko/req)
“Embarquable” dans vos applications (ASL 2.0)
LyonJUG - 24 Octobre 2018
Merci
LyonJUG - 24 Octobre 2018

Contenu connexe

Similaire à Je s'appelle Glowroot - LyonJUG Oct 2018

GWT, quoi de neuf? Présentation au GDG/GTUG Montréal - 26 juin 2013
GWT, quoi de neuf?  Présentation au GDG/GTUG Montréal - 26 juin 2013GWT, quoi de neuf?  Présentation au GDG/GTUG Montréal - 26 juin 2013
GWT, quoi de neuf? Présentation au GDG/GTUG Montréal - 26 juin 2013Claude Coulombe
 
Retour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesRetour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesVincent Composieux
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applicationsgoldoraf
 
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...sebastienmoreno
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Jean-Laurent de Morlhon
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIRomain Cambien
 
[FR] Capture vidéo avec HTML5
[FR] Capture vidéo avec HTML5[FR] Capture vidéo avec HTML5
[FR] Capture vidéo avec HTML5Thomas Bassetto
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continueStéphane HULARD
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Tugdual Grall
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Xavier NOPRE
 
Redmine présentation sug 2012
Redmine présentation sug 2012Redmine présentation sug 2012
Redmine présentation sug 2012Yannick Quenec'hdu
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthnChristophe Villeneuve
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++cppfrug
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans DrupalAdyax
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
 
GWT Approfondissement - GTI780 & MTI780 - ETS - A09
GWT Approfondissement  - GTI780 & MTI780 - ETS - A09GWT Approfondissement  - GTI780 & MTI780 - ETS - A09
GWT Approfondissement - GTI780 & MTI780 - ETS - A09Claude Coulombe
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-onsahar dridi
 

Similaire à Je s'appelle Glowroot - LyonJUG Oct 2018 (20)

GWT, quoi de neuf? Présentation au GDG/GTUG Montréal - 26 juin 2013
GWT, quoi de neuf?  Présentation au GDG/GTUG Montréal - 26 juin 2013GWT, quoi de neuf?  Présentation au GDG/GTUG Montréal - 26 juin 2013
GWT, quoi de neuf? Présentation au GDG/GTUG Montréal - 26 juin 2013
 
Retour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesRetour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, Kubernetes
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applications
 
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open API
 
[FR] Capture vidéo avec HTML5
[FR] Capture vidéo avec HTML5[FR] Capture vidéo avec HTML5
[FR] Capture vidéo avec HTML5
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013
 
Redmine présentation sug 2012
Redmine présentation sug 2012Redmine présentation sug 2012
Redmine présentation sug 2012
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthn
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++
 
12-Factor
12-Factor12-Factor
12-Factor
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
 
GWT Approfondissement - GTI780 & MTI780 - ETS - A09
GWT Approfondissement  - GTI780 & MTI780 - ETS - A09GWT Approfondissement  - GTI780 & MTI780 - ETS - A09
GWT Approfondissement - GTI780 & MTI780 - ETS - A09
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
 

Plus de Henri Gomez

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.pdfHenri Gomez
 
20200225 bbl-docker-packaging-natif
20200225 bbl-docker-packaging-natif20200225 bbl-docker-packaging-natif
20200225 bbl-docker-packaging-natifHenri Gomez
 
From ci to cd - LavaJug 2012
From ci to cd  - LavaJug 2012From ci to cd  - LavaJug 2012
From ci to cd - LavaJug 2012Henri 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 2012Henri Gomez
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natifHenri Gomez
 
20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natifHenri Gomez
 
20111220 lyon jug-devops-culture
20111220 lyon jug-devops-culture20111220 lyon jug-devops-culture
20111220 lyon jug-devops-cultureHenri Gomez
 
20111205 breizh jug-devops
20111205 breizh jug-devops20111205 breizh jug-devops
20111205 breizh jug-devopsHenri Gomez
 
20111205 breizh jug-packaging-natif
20111205 breizh jug-packaging-natif20111205 breizh jug-packaging-natif
20111205 breizh jug-packaging-natifHenri Gomez
 
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 2011Henri Gomez
 
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 2011Henri Gomez
 
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 2011Henri Gomez
 
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 2011Henri Gomez
 

Plus de Henri Gomez (14)

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
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif
 
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

BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineBOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineidelewebmestre
 
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsBOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsidelewebmestre
 
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresBOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresidelewebmestre
 
BOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - Dedans/Dehors quand voir ne suffit pasBOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - Dedans/Dehors quand voir ne suffit pasidelewebmestre
 
BOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chairBOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chairidelewebmestre
 
Accompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la NièvreAccompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la Nièvreidelewebmestre
 
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitièresBOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitièresidelewebmestre
 
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsBow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsidelewebmestre
 
Agrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en DordogneAgrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en Dordogneidelewebmestre
 
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatiqueBOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatiqueidelewebmestre
 
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...idelewebmestre
 
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud PorcsBOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud Porcsidelewebmestre
 
Cadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en FranceCadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en Franceidelewebmestre
 
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...idelewebmestre
 
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleurBOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleuridelewebmestre
 
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsBOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsidelewebmestre
 
BOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitièresBOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitièresidelewebmestre
 
Cours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesCours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesPierreFournier32
 

Dernier (20)

BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineBOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
 
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsBOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
 
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresBOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
 
BOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - Dedans/Dehors quand voir ne suffit pasBOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - Dedans/Dehors quand voir ne suffit pas
 
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
 
BOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chairBOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chair
 
Accompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la NièvreAccompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la Nièvre
 
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitièresBOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
 
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsBow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
 
Agrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en DordogneAgrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en Dordogne
 
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatiqueBOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
 
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
 
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud PorcsBOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
 
Cadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en FranceCadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en France
 
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
 
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleurBOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
 
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsBOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminants
 
Webinaire lésions podales_04.04.2024.pptx
Webinaire lésions podales_04.04.2024.pptxWebinaire lésions podales_04.04.2024.pptx
Webinaire lésions podales_04.04.2024.pptx
 
BOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitièresBOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitières
 
Cours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesCours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pages
 

Je s'appelle Glowroot - LyonJUG Oct 2018

  • 1. Je s’appelle Glowroot Henri Gomez @hgomez LyonJUG - 24 Octobre 2018
  • 2. Qui suis-je ? Dev, QA, Ops, CI/CD Actuellement éleveur d’infrastructure chez En charge notamment de https://github.com/hgomez @hgomez LyonJUG - 24 Octobre 2018
  • 4. Un APM, qu’est-ce donc ? Application Performance Management (*) Outillage de mesure des performances d’une application Terme principal : TPS (Transaction/s) LyonJUG - 24 Octobre 2018
  • 5. Un APM c’est cher Oui mais ça c’était avant Glowroot LyonJUG - 24 Octobre 2018
  • 6. Un APM c’est un outil d’Ops Ops - SLA, Tuning Prod QA - Préprod, Réduction du taux de WTF Dev - Run à fond LyonJUG - 24 Octobre 2018
  • 7. Glowroot, c’est surpuissant Accès à l’instrumentation JVM instruments et MBeans Multi frameworks (Servlet, Netty, Play 1&2, VertX …) Multi protocoles (JDBC, Elastic, Cassandra ..) Multi App Server (Tomcat, Jetty, Wildfly, Payara…) Détection des pistes d’exécutions standard (servlet, quartz …) Ajout de pistes d'exécutions à la volée LyonJUG - 24 Octobre 2018
  • 8. Glowroot, APM Java Agent Java Mode Autonome ou connecté (Central) Overhead marginal < 10us Surcoût mémoire minime ~ 2ko LyonJUG - 24 Octobre 2018
  • 10. 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, un container, oneshot mode En mode autonome LyonJUG - 24 Octobre 2018 Stockage local dans H2 DB, à éviter sur de longues périodes
  • 11. 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 exécutable) LyonJUG - 24 Octobre 2018
  • 12. Java Agent, mode autonome - port Web Par défaut 4000, peut être défini dans admin.json "web": { "port": 4000, "bindAddress": "127.0.0.1", "contextPath": "/", "sessionTimeoutMinutes": 30, "sessionCookieName": "GLOWROOT_SESSION_ID" LyonJUG - 24 Octobre 2018
  • 13. 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 LyonJUG - 24 Octobre 2018
  • 14. Connecté à Glowroot Central LyonJUG - 24 Octobre 2018
  • 15. 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" LyonJUG - 24 Octobre 2018
  • 16. Glowroot Central en Cluster LyonJUG - 24 Octobre 2018
  • 17. 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" LyonJUG - 24 Octobre 2018
  • 18. # Glowroot Agent injection pour SonarQube Web dans sonar.properties sonar.web.javaAdditionalOpts= -javaagent:/path/to/glowroot/glowroot.jar -Dglowroot.multi.dir=true -Dglowroot.agent.id=web -Dglowroot.agent.rollup.id=sqdev # Glowroot Agent injection pour SonarQube ComputeEngine dans sonar.properties sonar.ce.javaAdditionalOpts= -javaagent:/path/to/glowroot/glowroot.jar -Dglowroot.multi.dir=true -Dglowroot.agent.id=ce -Dglowroot.agent.rollup.id=sqdev Java Agent, connecté, plusieurs jvm locales LyonJUG - 24 Octobre 2018 Depuis la 0.11.x, il faut spécifier -Dglowroot.multi.dir=true
  • 19. Demo time ! LyonJUG - 24 Octobre 2018
  • 20. Glowroot, API Agent <dependency> <groupId>org.glowroot</groupId> <artifactId>glowroot-agent-api</artifactId> <version>0.10.11</version> </dependency> void processInvoice(Invoice invoice) { Glowroot.setTransactionName("Process Invoice"); ... } @Instrumentation.Timer("process invoice") void processInvoice(Invoice invoice) { ... } @Instrumentation.TraceEntry(message = "process invoice: {{0.invoiceNumber}}", timer = "process invoice") void processInvoice(Invoice invoice) { ... } LyonJUG - 24 Octobre 2018
  • 21. Glowroot c’est Pour tous Simplissime à déployer Mode Autonome ou Connecté Déclenchement sur dépassement de seuils Pas d’impact sur le run (<10us-2ko/req) “Embarquable” dans vos applications (ASL 2.0) LyonJUG - 24 Octobre 2018
  • 22. Merci LyonJUG - 24 Octobre 2018