Monitoring a JHipster microservice architecture

Pierre Besson, Oct 29th 2018

Who am I ?


Pierre Besson

@pibesson

PierreBesson



  • FullStack & DevOps @IpponTech
  • Monitoring Enthusiast
  • JHipster core team member
    • πŸƒ Spring
    • 🐳 Docker
    • ☸️ Kubernetes

Monitoring microservices

Problems when monitoring microservices


  • Distributed system -> More complex to observe
  • Logs are dispersed in many log files
  • Hard to locate the microservice that caused a problem
  • Hard to follow the chain of requests
  • πŸ‡/🐒 Studying latency is hard

The 3 ways of Observability


  • Logs : discrete event
  • Metrics : numerical values (business or technical)
  • Traces : chains of calls in the system (spans)

The JHipster Console


jhipster.tech/monitoring/
  • Setup the ZELK stack (Zipkin, Elasticsearch, Logstash, Kibana) in docker
  • Enable reporting from any JHipster app with a few properties
  • Logs + metrics forwarded with logback-logstash-encoder
  • Traces are forwarded to Zipkin using Spring Cloud Sleuth
JHipster Console Architecture
architecture

JHipster Console demo

Setting up the Console

Navigating around Kibana

Analysing logs

Graphing metrics, manipulating timeseries

Following call traces accross services (Kibana + Zipkin)

The future of JHipster monitoring (Help wanted !)

  • Migrate from Dropmizard Metrics to Micrometer (in progress)
  • Improve alerting
  • Improve Prometheus support and add Grafana dashboards
  • Support cloud monitoring solutions: Datadog, Google Stackdriver, ...

Thank you !

Slides: https://pierrebesson.github.io/microservice-monitoring-tools-in-action-slides

Code: https://github.com/PierreBesson/microservice-monitoring-tools-in-action-demo

@pibesson

PierreBesson

pbesson@ippon.fr