OTel in
Jenkins
● Traces can go
through different
tools, not just a
single one
● Jenkins +
Maven
● Maven +
Jenkins
Source:
plugins.jenkins.io/opentelemetry/
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
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
Slide 35
Slide 35 text
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
Slide 36
Slide 36 text
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
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
Slide 39
Slide 39 text
39
Did we say
“modern Java”?
Localstack
Cloud Native Architecture
Slide 40
Slide 40 text
Observability
of Distributed Systems
* the same rabbithole
Slide 41
Slide 41 text
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
Slide 42
Slide 42 text
Demo Time!
42
github.com/oleg-nenashev/opentelemetry-gradle-quarkus-demo
BEWARE: I decided to
do a GitHub Demo
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/
Slide 45
Slide 45 text
45
Slide 46
Slide 46 text
No content
Slide 47
Slide 47 text
47
Adopt OTel and Open Standards
in YOUR projects and libraries
Slide 48
Slide 48 text
48
Protip: Combine Tools for different Info Levels
Slide 49
Slide 49 text
+
● 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
Slide 50
Slide 50 text
50
Protip: Combine Tools for different Info Levels
Pipeline / Steps
Build Tool and App
specifics
Slide 51
Slide 51 text
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