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

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

Avatar for Oleg Nenashev Oleg Nenashev
October 10, 2024
68

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!

Avatar for Oleg Nenashev

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