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

360° Monitoring of Your Microservices

360° Monitoring of Your Microservices

"With microservices every outage is like a murder mystery" is a common complaint. But it doesn't have to be! This talk gives an overview on how to monitor Spring Boot applications, since they are increasingly popular for building microservices. We dive into:
* System metrics: Keep track of network traffic and system load.
* Application logs: Collect and parse your logs.
* Uptime monitoring: Use Heartbeat to ping services and actively monitor their availability.
* Application metrics: Get the information from Spring Boot's metric and health endpoints via REST and JMX.
* Request tracing: Use Elastic APM to trace requests through a distributed system and Kibana to show how long each call takes.

And we will do all of that live, since it is so easy and much more interactive that way.

Philipp Krenn

July 01, 2019
Tweet

More Decks by Philipp Krenn

Other Decks in Programming

Transcript

  1. Monitor Your Apps with the
    Philipp Krenn̴̴̴̴̴@xeraa

    View Slide

  2. View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. Ceci n'est pas David
    Pilato.

    View Slide

  12. View Slide

  13. Developer

    View Slide

  14. Disclaimer
    I build highly monitored Hello World
    apps

    View Slide

  15. View Slide

  16. !

    View Slide

  17. xeraa.wtf
    Your requests

    View Slide

  18. Uptime
    Heartbeat: ICMP, TCP, HTTP(S)

    View Slide

  19. Logs
    Filebeat: structured, enriched

    View Slide

  20. Network
    Packetbeat: TCP/IP, HTTP, MySQL, TLS

    View Slide

  21. Metrics
    Metricbeat: host, apps (heap usage)

    View Slide

  22. Security
    Auditbeat: users, systems, executions

    View Slide

  23. APM / Tracing
    Java, Node.js, Python, Ruby, Go, .NET

    View Slide

  24. APM Real User Monitoring (RUM)
    import { init as initApm } from '@elastic/apm-rum'
    const apm = initApm({
    serviceName: 'my-app',
    serverUrl: 'http://apm-server.com:8200',
    serviceVersion: '1.0'
    })

    View Slide

  25. More

    View Slide

  26. Alertinga
    a Gold License and part of the Elastic Cloud

    View Slide

  27. View Slide

  28. Machine Learningb
    Anomaly Detection of Time Series Data
    b Platinum License and part of the Elastic Cloud

    View Slide

  29. View Slide

  30. Conclusion

    View Slide

  31. View Slide

  32. From
    !
    to

    View Slide

  33. Code
    https://github.com/xeraa/
    microservice-monitoring

    View Slide

  34. Questions?
    Philipp Krenn̴̴̴̴̴@xeraa
    PS: Sticker

    View Slide