Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Glowroot, le petit APM qui vous veut du bien

Glowroot, le petit APM qui vous veut du bien

Présentation sur Glowroot à Voxxed LU 2018

Avatar for Henri Gomez

Henri Gomez

June 22, 2018
Tweet

More Decks by Henri Gomez

Other Decks in Programming

Transcript

  1. Un APM, qu’est-ce donc ? Application Performance Management (*) Outillage

    de mesure des performances d’une application Terme principal : TPS (Transaction/s)
  2. Un APM c’est un outil d’Ops Ops - SLA, Tuning

    Prod QA - Préprod, Réduction du taux de WTF Dev - Run à fond
  3. Glowroot, APM Java Agent Java Mode Autonome ou connecté (Central)

    Overhead marginal < 10us Surcoût mémoire minime ~ 2ko
  4. 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
  5. 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)
  6. 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
  7. 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"
  8. 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"
  9. 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"); ... }
  10. 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)
  11. 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…)