Ricardo Ferreira Developer Advocate q Elastic Community Team q HashiCorp Ambassador q Before working for Elastic: Confluent, Oracle, Red Hat
q Distributed Systems, O11y, Streaming Systems, databases q riferrei@elastic.co q riferrei@riferrei.com @riferrei
Down the river via @WithSpan <dependency> <groupId>io.opentelemetry</groupId> <artifactId>opentelemetry-extension-annotations</artifactId> <version>${version}</version> </dependency>
@WithSpan public void someMethod() { }
@riferrei
Slide 11
Disabling auto instrumentation
-Dotel.instrumentation.common.default-enabled=false
@riferrei
Slide 12
Enabling only manual instrumentation
-Dotel.instrumentation.opentelemetry-annotations.enabled=true
@riferrei
Slide 13
Meaningful names for services -Dotel.resource.attributes=service.name= \ brand-estimator,service.version=1.0
@riferrei
Slide 14
Meaningful names for services export OTEL_RESOURCE_ATTRIBUTES=service.name= \ brand-estimator,service.version=1.0
@riferrei
Slide 15
Making your traces observable
@riferrei
Slide 16
Using Text-Map-Propagators
@riferrei
Slide 17
Using Text-Map-Propagators
@riferrei
Slide 18
Using Text-Map-Propagators
@riferrei
Slide 19
Can I tell you a secret? SELECT a FROM b WHERE password=?
SELECT a FROM b WHERE password=”secret”
@riferrei
Slide 20
Databases can be a bit chatty
java.sql.Datasource#getConnection()
-Dotel.instrumentation.jdbc-datasource.enabled=true
@riferrei
Slide 21
Excluding noisy frameworks
@riferrei
Slide 22
Using the batch-Span-Processor
@riferrei
Slide 23
Planning your sampling strategy
@riferrei
Slide 24
Debugging the Agent
-Dotel.javaagent.debug=true
export OTEL_JAVAAGENT_DEBUG=true
@riferrei
Slide 25
Disabling the agent
-Dotel.javaagent.enabled=false
export OTEL_JAVAAGENT_ENABLED=false
@riferrei
Slide 26
Observable metrics: no pun intended
@riferrei
Slide 27
Inspecting telemetry data with jMC <dependency> <groupId>io.opentelemetry</groupId> <artifactId>opentelemetry-sdk-extension-jfr-events</artifactId> <version>${version}</version> </dependency>
@riferrei