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

jvm web application metrics monitoring
SMART_READER_LITE
LIVE PREVIEW

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)->


slide-1
SLIDE 1

JVM Web Application Metrics & Monitoring

FOLIO @krrrr38 2

slide-2
SLIDE 2

3

slide-3
SLIDE 3

1. 2.

  • 3. JVM Web Application

4

slide-4
SLIDE 4

5

slide-5
SLIDE 5

Metrics

6

slide-6
SLIDE 6

Metrics

JVM http JMX jcmd, jstat, ... 7

slide-7
SLIDE 7

Metrics

server/process pull /push 8

slide-8
SLIDE 8

pull /push

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

slide-9
SLIDE 9

Example 1

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

slide-10
SLIDE 10

jvm app (jmx, perf,...)

jstat, jcmd

mackerel-agent

mackerel

mackerel

11

slide-11
SLIDE 11

Example 2

prometheus, grafana 12

slide-12
SLIDE 12

jvm app: /metrics prom metrics

prometheus

grafana prometheus

13

slide-13
SLIDE 13

Example 3

telegraf metrics interface gateway telegraf https://github.com/inuxdata/telegraf 14

slide-14
SLIDE 14

15

slide-15
SLIDE 15

key value

JMX dropwizard metrics 16

slide-16
SLIDE 16

key+labels value

17

slide-17
SLIDE 17

key+labels value

prometheus kamon micrometer http://micrometer.io/ 18

slide-18
SLIDE 18

response_time_GET_foo = 123ms response_time_GET_bar = 250ms response_time_POST_bar = 210ms response_time_POST_foo_bar = 512ms

19

slide-19
SLIDE 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

slide-20
SLIDE 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

slide-21
SLIDE 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

slide-22
SLIDE 22

23

slide-23
SLIDE 23

24

slide-24
SLIDE 24

JVM Web Application Metrics

25

slide-25
SLIDE 25

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

slide-26
SLIDE 26

heap usage / gc lifecycle

memory leak Xmx gc ( ) in-memory cache 512M~2G FullGC STW gc lifecycle 27

slide-27
SLIDE 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

slide-28
SLIDE 28

server cpu / network / etc

application cpu network 29

slide-29
SLIDE 29

request count / response time / queue / ...

30

slide-30
SLIDE 30

31

slide-31
SLIDE 31

micrometer

32

slide-32
SLIDE 32

micrometer

Java key+labels value plugin JVM System metrics, GC, logback, tomcat, jetty, hikaricp jmx, prom, inux, datadog agent,... 33

slide-33
SLIDE 33

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

slide-34
SLIDE 34

agent

java -jar

e.g. NewRelic 35

slide-35
SLIDE 35

36

slide-36
SLIDE 36

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