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

[JNATION25] Let your Java application be truly ...

[JNATION25] Let your Java application be truly observable! Let's dive into logs, traces and monitoring

Avatar for Alexandre Touret

Alexandre Touret

May 28, 2025
Tweet

More Decks by Alexandre Touret

Other Decks in Technology

Transcript

  1. Let your Java application be truly observable! Let's dive into

    logs, traces and monitoring David PEQUEGNOT / Alexandre TOURET
  2. 2024-06-10T10:44:54.444+02:00 ERROR 387865 --- [easypay-service] [o-auto-1-exec-5] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for

    servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.NullPointerException: Cannot invoke "java.lang.Boolean.booleanValue()" because "java.util.List.get(int).active" is null] with root cause java.lang.NullPointerException: Cannot invoke "java.lang.Boolean.booleanValue()" because "java.util.List.get(int).active" is null at com.worldline.easypay.payment.control.PosValidator.isActive(PosVali dator.java:34) at com.worldline.easypay.payment.control.PaymentService.process(Paymen tService.java:46)
  3. We design payments technology that powers the growth of millions

    of businesses around the world. 7000+ engineers in over 40 countries Managing 43+ billion transactions per year €250M spent in R&D every year Handling 150+ payment methods #1 European payment processor
  4. Pinpoint issues in the logs and improve them Broadcast metrics

    Implement Distributed tracing Correlating All of them Agenda
  5. Under the hood poses t e s poses an c

    ec s O & card aut ori es t e payment customer
  6. Logs, traces & metrics Logs Traces Metrics Where does it

    happen? Something happens What happens?
  7. poses an c ec s O & card aut ori

    es t e payment tores traces tores o s Data loading
  8. n administrator o ro ses das ards and e tracts

    data from rafana tores traces tores o s Visualization n administrator o ro ses das ards and e tracts data from rafana tores traces tores o s
  9. How to instrument my App? 2 ways Libraries • Faster

    at startup • Mandatory for native mode Agent • Works « out of the box » • Loose couple business artefacts from the technical ones • Smooth integration
  10. Metrics Vert.X: Micrometer Metrics Performance https://vertx.io/blog/micrometer-metrics-performance/ Useful to understand the

    status of a platform The number of metrics can impact performance (e.g., Memory) •Be careful with histograms, buckets,... •Beware of the cardinality of the labels
  11. Traces 1201,51 1477,82371 1468,98875 0 200 400 600 800 1000

    1200 1400 1600 100% DISABLED 0% RPS (29 spans/trace) 1471,708845 1478,591626 1478,69221 0 200 400 600 800 1000 1200 1400 1600 100% DIS. 0% RPS (7 spans/trace) By default, a trace can be generated for each transaction But... this can have an impact on the performance of your application and storage → Use a collector
  12. Traces Head Sampling & Performance 1477,82371 1468,98875 1422,40019 1320,57735 1252,411

    1201,51 0 200 400 600 800 1000 1200 1400 1600 RPS - 29 spans/trace 549,89 553,13 571,25 615,37 648,82 676,22 0 100 200 300 400 500 600 700 800 Avg. Response Time (ms) – 29 spans / trace
  13. Traces Head Sampling & Resources Usage 0,00% 10,00% 20,00% 30,00%

    40,00% 50,00% 60,00% 70,00% 80,00% 90,00% 100,00% CPU% - 29 spans/trace 576,06 624,53 718,47 818,42 918,7 992,88 0 200 400 600 800 1000 1200 RSS (MB) - 29 spans/trace
  14. Don’t e a stran er! Follow & get in touch

    @foxlegend linkedin.com/in /davidpequegnot Follow us: @touret.info linkedin.com/in /atouret 30 |