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

KCD Austria: Modern Java CI/CD observability wi...

Oleg Nenashev
October 10, 2024
31

KCD Austria: Modern Java CI/CD observability with Gradle/Quarkus

Well-functioning Continuous Integration, Delivery, and Deployment pipelines are instrumental to the stability of cloud-native applications, including disaster recovery when things go wrong. Hence CI/CD observability is instrumental and might be as important as one for production environments. Many tools provide integrations with OTel, and initiatives like OTEP-0223 target standardizing the reporting formats across the ecosystem.

We will focus on a modern Java stack for cloud-native applications: Quarkus, Gradle, Java Flight Recorder (JFR), recent Java versions, and GitHub Actions.

P.S: If you are interested in the subject, join the #cicd-o11y channel on the CNCF Slack!

Oleg Nenashev

October 10, 2024
Tweet

More Decks by Oleg Nenashev

Transcript

  1. KCD Austria 2024 PRESENTER Modern Java app CI/CD observability with

    OTel, Quarkus and Gradle #otel-cicd on the CNCF Slack Oleg Nenashev Gradle Inc.
  2. > whoami @oleg_nenashev oleg-nenashev Dr. Nenashev / Mr. Jenkins Community

    builder Developer Tools Hacker #RussiansAgainstPutin #StandWithUkraine 1.x
  3. My first observability project, 2009 Oil flow meter and monitoring

    system Now: tundrasolutions.ca/products/neftemer
  4. OTel in Jenkins • Traces can go through different tools,

    not just a single one • Jenkins + Maven • Maven + Jenkins Source: plugins.jenkins.io/opentelemetry/
  5. 15 Java All the Way Down Your Pipeline(s) Your Build

    Tool Your Framework Your JVM Your System Test Framework & JVM Java the stack up all the way
  6. 18 Java All the Way Down Your Pipeline(s) Your Build

    Tool Your Framework Your JVM Your System Test Framework & JVM Java the stack up all the way
  7. 21

  8. In the demo • honeycombio/gha-buildevents • krzko/setup-telemetry • krzko/export-job-telemetry •

    inception-health/otel-export-trace-action 22 Demo: github.com/oleg-nenashev/opentelemetry-gradle-quarkus-demo
  9. 24 Java All the Way Down Your Pipeline(s) Your Build

    Tool Your Framework Your JVM Your System Test Framework & JVM Java the stack up all the way
  10. 25

  11. 27 OpenTelemetry plugin for Gradle • Injecting traces and spans

    to the Gradle execution • Helps to find the slowest parts of your build with the Gradle OpenTelemetry build plugin. • Created by Craig Atkinson • craigatk/opentelemetry-gradle-plugin
  12. 31 Java All the Way Down Your Pipeline(s) Your Build

    Tool Your Framework Your JVM Your System Test Framework & JVM Java the stack up all the way
  13. In the demo • Test Reporting from Quarkus • Profiles

    for developer and test environments • Manual: quarkusDev mode 34 Demo: github.com/oleg-nenashev/opentelemetry-gradle-quarkus-demo
  14. 35 Java All the Way Down Your Pipeline(s) Your Build

    Tool Your Framework Your JVM Your System Test Framework & JVM Java the stack up all the way
  15. And then the JVM? • OpenTelemetry Java Agent • JMX

    Java Flight Recorder • Automatic data ingestion for metrics, logs and (some spans) 36 Demo: github.com/oleg-nenashev/opentelemetry-gradle-quarkus-demo
  16. 38 Java All the Way Down Your Pipeline(s) Your Build

    Tool Your Framework Your JVM Your System Test Framework & JVM Java the stack up all the way
  17. 41 And it is not even CD… • Relationships between

    Pipelines are even more complex • Standardization is needed • CDEvents project in the Continuous Delivery Foundation • OTEP-0223 by Dotan Horowitz for adoption in OTel traces
  18. Learnings 44 • Each tool has different OTel configuration •

    Env propagation is fun • Span/Traces propagation is partial • Good luck with maintaining it in universal way :( Source reddit.com/r/Program merHumor/comment s/7zfgwg/frontend_vs _backend/
  19. 45

  20. + • Quarkus is supported by Gradle Inc. We provide

    caching, build scans and analytics for the project • Public Instance: https://ge.quarkus.io/ gradle/develocity-oss-projects
  21. Takeaways • Java is Observable • Multiple Extra layers, you

    need to observe all • Build Tools CAN be observable • You’re responsible for the glue • Integrated trace is a massive endeavour 51