jvm web application metrics monitoring
play

JVM Web Application Metrics & Monitoring FOLIO @krrrr38 2 3 - PowerPoint PPT Presentation

JVM Web Application Metrics & Monitoring FOLIO @krrrr38 2 3 1. 2. 3. JVM Web Application 4 5 Metrics 6 Metrics JVM http JMX jcmd, jstat, ... 7 Metrics server/process pull /push 8 pull /push push server -(process)->


  1. JVM Web Application Metrics & Monitoring FOLIO @krrrr38 2

  2. 3

  3. 1. 2. 3. JVM Web Application 4

  4. 5

  5. Metrics 6

  6. Metrics JVM http JMX jcmd, jstat, ... 7

  7. Metrics server/process pull /push 8

  8. pull /push push server -(process)-> metrics storage gateway e.g. mackerel agent pull server <- metrics e.g. prometheus 9

  9. Example 1 mackerel-agent (mackerel-jvm-plugin) mackerel https://mackerel.io/ process 10

  10. jvm app (jmx, perf,...) ↓ jstat, jcmd ↓ mackerel-agent ↓ mackerel ↓ mackerel 11

  11. Example 2 prometheus, grafana 12

  12. jvm app: /metrics prom metrics ↓ prometheus ↓ grafana prometheus 13

  13. Example 3 telegraf metrics interface gateway telegraf https://github.com/in�uxdata/telegraf 14

  14. 15

  15. key value JMX dropwizard metrics 16

  16. key+labels value 17

  17. key+labels value prometheus kamon micrometer http://micrometer.io/ 18

  18. response_time_GET_foo = 123ms response_time_GET_bar = 250ms response_time_POST_bar = 210ms response_time_POST_foo_bar = 512ms 19

  19. average/max/95%tile response_time_GET_foo_average = 123ms response_time_GET_foo_max = 123ms response_time_GET_foo_95% = 123ms response_time_GET_bar_average = 250ms response_time_GET_bar_max = 250ms response_time_GET_bar_95% = 250ms response_time_POST_bar_average = 210ms response_time_POST_bar_max = 210ms response_time_POST_bar_95% = 210ms response_time_POST_foo_bar_average = 512ms response_time_POST_foo_bar_max = 512ms response_time_POST_foo_bar_95% = 512ms 95%tile / ...? 20

  20. SELECT * FROM metrics WHERE key IN ( response_time_GET_foo_95%, response_time_GET_bar_95%, response_time_POST_bar_95%, response_time_POST_foo_bar_95% ) index SELECT * FROM metrics WHERE key LIKE 'response_time_%_95\%' 21

  21. response_time{"method"=GET, path=foo, percent=50} = 123ms response_time{"method"=GET, path=foo, percent=95} = 123ms response_time{"method"=GET, path=foo, percent=100} = 123ms template percent method=POST 22

  22. 23

  23. 24

  24. JVM Web Application Metrics 25

  25. heap usage gc lifecycle thread pool connection pool cpu request count / response time queue ... 26

  26. heap usage / gc lifecycle memory leak Xmx gc ( ) in-memory cache 512M~2G FullGC STW gc lifecycle 27

  27. thread / connection pool blocking thread pool active e.g. servlet not nio api jedis/jdbc/... thread pool in application blocking thread pool thread pool implicit global default ForkjoinPool 28

  28. server cpu / network / etc application cpu network 29

  29. request count / response time / queue / ... 30

  30. 31

  31. micrometer 32

  32. micrometer Java key+labels value plugin JVM System metrics, GC, logback, tomcat, jetty, hikaricp jmx, prom, in�ux, datadog agent,... 33

  33. jmx, java agent, -XX:+FlightRecorder , ... 34

  34. agent java -jar e.g. NewRelic 35

  35. 36

  36. framegraph: http://www.brendangregg.com/blog/2015-11- 06/java-mixed-mode-�ame-graphs.html https://github.com/jvm-pro�ling-tools/perf- map-agent https://glowroot.org/ 37

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend