SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
A Practical Guide To End-to-End Tracing
In Event Driven Architectures
Roman - UK developer at PIE Labs
PIE Labs, Confluent
• What is Distributed Tracing ?
• What is OpenTelemetry?
• Kafka Client instrumentation
• Kafka Streams instrumentation
• Kafka Connect instrumentation
• Summary
Who we are, what we’ll talk about…
What is Distributed Tracing (DT)?
https://www.altexsoft.com/blog/shipment-tracking-integration-apis-edis-carriers-aggregators/
Systems get
complex…
Components of a DT system
• Instrumentation
• Collection
• Visualisation
https://blog.gurock.com/distributed-tracing
/
What makes up a trace?
https://docs.logz.io/user-guide/distributed-tracing/what-is-tracing
Context and Context?
• Local Trace Context
Context and Context?
• Remote Trace Context
Trace Context and it’s Propagation?
Why Distributed Tracing?
Adding context to the message and process flow.
• Dependency graph
• Record of Event flow
• Log correlation
• Contextual metrics
• Answer questions like:
“This result looks weird. Show me all the intermediate
states, so I can debug where the weirdness started…”
Section: What is OpenTelemetry?
• What is Distributed Tracing (DT)?
• What is OpenTelemetry?
• Kafka Client instrumentation
• Kafka Streams instrumentation
• Kafka Connect instrumentation
Overview of OpenTelemetry
1. Standardised, vendor-agnostic
2. High-quality, ubiquitous, and portable
3. Collection of tools, APIs, and SDKs
4. Instrument, generate
5. Collect, and export
6. To an observability back-end (not OT - e.g. Jaeger)
7. To help you analyze your software’s performance and behavior
Support for Kafka in OpenTelemetry
Kafka Clients:
• Javaagent
• Tracing Wrappers
• Tracing Interceptors
Kafka Streams:
• Javaagent
• Supply Kafka Clients with Tracing
OpenTelmetry instrumentation
Javaagent - Auto Instrumentation Agent
• Aspect Oriented approach
• Byte Buddy
• Muzzle
• Extension support
• Service Provider Interface (SPI) for tracer customization
• Installed at runtime through `-javaagent` Java option
OpenTelmetry instrumentation agent - how does it work?
Tracing Interceptors
• Standard Consumer / Producer Interceptor
implementations
• Installed through Interceptor configuration
Tracing Interceptors - how do they work?
Tracing Wrappers
• Standard Consumer / Producer Interface
implementations
• Installed through code
• Uses java.reflect.Proxy to intercept relevant method
calls and add tracing behaviour
Tracing Wrappers - how do they work?
• What is Distributed Tracing (DT)?
• What is OpenTelemetry?
• Kafka Client instrumentation
• Kafka Streams instrumentation
• Kafka Connect instrumentation
Section: Kafka Client instrumentation
Tracing Consumer Producer Applications
Application Flow
Trace
Tracing Consumer Producer Applications
Kafka Receive Telemetry Enabled
Tracing Consumer Producer Applications
Kafka Receive Telemetry Enabled
Tracing Consumer Producer Applications
Kafka Receive Telemetry Enabled
Tracing Consumer Producer Applications
Kafka Receive Telemetry Disabled
Tracing Consumer Producer Applications
Kafka Receive Telemetry Disabled
Tracing Consumer Producer Applications
Kafka Receive Telemetry Disabled
Comparison of instrumentation methods
Interceptor / Wrapper
Javaagent
Comparison of instrumentation methods - Producer
Interceptor Javaagent
Wrapper
Comparison of instrumentation methods - Consumer
Interceptor Javaagent
Wrapper
Comparison of instrumentation methods
Interceptor Wrapper Javaagent
Installation Config or Code Code Runtime
Producer Metadata Limited Full Full
Consumer Metadata Full Full Full
Consumer Local Context Not propagated Not propagated Propagated
Library Kafka-clients-2.6 Kafka-clients-2.6 Kafka-clients-0.11
• What is Distributed Tracing (DT)?
• What is OpenTelemetry?
• Kafka Client instrumentation
• Kafka Streams instrumentation
• Kafka Connect instrumentation
Section: Kafka Client instrumentation
Kafka Streams support
• Kafka Streams specific Process span implementation in Javaagent
• Stateless Kafka Streams processing pipelines
• Limitations:
• Non-javaagent implementation limitations
• Stateful operation support
• Caching in stateful operations
Kafka Streams support - Stateless
Javaagent
Interceptor / Wrapper
Kafka Streams support - Stateless
Javaagent
Interceptor / Wrapper
Kafka Streams support - Stateless
Interceptor / Wrapper
Kafka Streams support - Stateless
Interceptor / Wrapper
Javaagent
Kafka Streams - Stateful - No Caching
Kafka Streams - Stateful - No Caching - Aggregate Span
Kafka Streams - Stateful - No Caching - Aggregate Span
Kafka Streams - Stateful - No Caching - Aggregate Span
Kafka Streams - Stateful - No Caching - Aggregate Span
Kafka Streams - Stateful - No Caching - Wrapped Store
Kafka Streams - Stateful - No Caching - Wrapped Store
Kafka Streams - Stateful - No Caching - Wrapped Store
Kafka Streams - Stateful - Caching
Kafka Streams - Stateful - Caching - Aggregate
Kafka Streams - Stateful - Caching - Aggregate
Kafka Streams - Stateful - Caching - Aggregate
Kafka Streams support - summary
• Supported as is with Javaagent:
• Stateless
• Stateful - with limitations - single thread context, - no caching
• Wrapping State Store approach
• Inlining Span creation into Stateful operations
• Transformer hack - possible repartitioning
• What is Distributed Tracing (DT)?
• What is OpenTelemetry?
• Kafka Client instrumentation
• Kafka Streams instrumentation
• Kafka Connect instrumentation
Section: Kafka Client instrumentation
Kafka Connect support - Source Task
Kafka Connect support - Source Task
Kafka Connect support - Source Task
Kafka Connect support - Source Task
Kafka Connect support - Sink Task
Kafka Connect support - Sink Task
Kafka Connect support - Sink Task
Future plans & More Information
confluent.io/community/ask-the-community
rkolesnev@confluent.io
https://github.com/rkolesnev/kafka-opentelemetry

Weitere ähnliche Inhalte

Ähnlich wie A Practical Guide To End-to-End Tracing In Event Driven Architectures with Roman Kolesnev

Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Timothy Spann
 

Ähnlich wie A Practical Guide To End-to-End Tracing In Event Driven Architectures with Roman Kolesnev (20)

Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka Introduction
 
Sas 2015 event_driven
Sas 2015 event_drivenSas 2015 event_driven
Sas 2015 event_driven
 
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
 
Introduction Apache Kafka
Introduction Apache KafkaIntroduction Apache Kafka
Introduction Apache Kafka
 
Envoy and Kafka
Envoy and KafkaEnvoy and Kafka
Envoy and Kafka
 
Current and Future of Apache Kafka
Current and Future of Apache KafkaCurrent and Future of Apache Kafka
Current and Future of Apache Kafka
 
Ratpack Web Framework
Ratpack Web FrameworkRatpack Web Framework
Ratpack Web Framework
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
 
WSO2 Application Server
WSO2 Application ServerWSO2 Application Server
WSO2 Application Server
 
Python Kafka Integration: Developers Guide
Python Kafka Integration: Developers GuidePython Kafka Integration: Developers Guide
Python Kafka Integration: Developers Guide
 
Devfest uk & ireland using apache nifi with apache pulsar for fast data on-r...
Devfest uk & ireland  using apache nifi with apache pulsar for fast data on-r...Devfest uk & ireland  using apache nifi with apache pulsar for fast data on-r...
Devfest uk & ireland using apache nifi with apache pulsar for fast data on-r...
 
BBL KAPPA Lesfurets.com
BBL KAPPA Lesfurets.comBBL KAPPA Lesfurets.com
BBL KAPPA Lesfurets.com
 
Kafka Explainaton
Kafka ExplainatonKafka Explainaton
Kafka Explainaton
 
Applying ML on your Data in Motion with AWS and Confluent | Joseph Morais, Co...
Applying ML on your Data in Motion with AWS and Confluent | Joseph Morais, Co...Applying ML on your Data in Motion with AWS and Confluent | Joseph Morais, Co...
Applying ML on your Data in Motion with AWS and Confluent | Joseph Morais, Co...
 
Deploying Kafka on DC/OS
Deploying Kafka on DC/OSDeploying Kafka on DC/OS
Deploying Kafka on DC/OS
 
Tracing Micro Services with OpenTracing
Tracing Micro Services with OpenTracingTracing Micro Services with OpenTracing
Tracing Micro Services with OpenTracing
 
Comparison between zookeeper, etcd 3 and other distributed coordination systems
Comparison between zookeeper, etcd 3 and other distributed coordination systemsComparison between zookeeper, etcd 3 and other distributed coordination systems
Comparison between zookeeper, etcd 3 and other distributed coordination systems
 
Application Monitoring with WSO2 App Server
Application Monitoring with WSO2 App ServerApplication Monitoring with WSO2 App Server
Application Monitoring with WSO2 App Server
 
Introducing Apache Kafka and why it is important to Oracle, Java and IT profe...
Introducing Apache Kafka and why it is important to Oracle, Java and IT profe...Introducing Apache Kafka and why it is important to Oracle, Java and IT profe...
Introducing Apache Kafka and why it is important to Oracle, Java and IT profe...
 

Mehr von HostedbyConfluent

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolEvolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at Trendyol
HostedbyConfluent
 

Mehr von HostedbyConfluent (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Renaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit LondonRenaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit London
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolEvolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at Trendyol
 
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking TechniquesEnsuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
 
Exactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and KafkaExactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and Kafka
 
Fish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit LondonFish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit London
 
Tiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit LondonTiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit London
 
Building a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And WhyBuilding a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And Why
 
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
 
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
 
Navigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka ClustersNavigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka Clusters
 
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data PlatformApache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
 
Explaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy PubExplaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy Pub
 
TL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit LondonTL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit London
 
A Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSLA Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSL
 
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceMastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
 
Data Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondData Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and Beyond
 
Code-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink AppsCode-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink Apps
 
Debezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC EcosystemDebezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC Ecosystem
 
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksBeyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local Disks
 

Kürzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

A Practical Guide To End-to-End Tracing In Event Driven Architectures with Roman Kolesnev

  • 1. A Practical Guide To End-to-End Tracing In Event Driven Architectures
  • 2. Roman - UK developer at PIE Labs PIE Labs, Confluent • What is Distributed Tracing ? • What is OpenTelemetry? • Kafka Client instrumentation • Kafka Streams instrumentation • Kafka Connect instrumentation • Summary Who we are, what we’ll talk about…
  • 3. What is Distributed Tracing (DT)? https://www.altexsoft.com/blog/shipment-tracking-integration-apis-edis-carriers-aggregators/ Systems get complex…
  • 4. Components of a DT system • Instrumentation • Collection • Visualisation https://blog.gurock.com/distributed-tracing /
  • 5. What makes up a trace? https://docs.logz.io/user-guide/distributed-tracing/what-is-tracing
  • 6. Context and Context? • Local Trace Context
  • 7. Context and Context? • Remote Trace Context
  • 8. Trace Context and it’s Propagation?
  • 9. Why Distributed Tracing? Adding context to the message and process flow. • Dependency graph • Record of Event flow • Log correlation • Contextual metrics • Answer questions like: “This result looks weird. Show me all the intermediate states, so I can debug where the weirdness started…”
  • 10. Section: What is OpenTelemetry? • What is Distributed Tracing (DT)? • What is OpenTelemetry? • Kafka Client instrumentation • Kafka Streams instrumentation • Kafka Connect instrumentation
  • 11. Overview of OpenTelemetry 1. Standardised, vendor-agnostic 2. High-quality, ubiquitous, and portable 3. Collection of tools, APIs, and SDKs 4. Instrument, generate 5. Collect, and export 6. To an observability back-end (not OT - e.g. Jaeger) 7. To help you analyze your software’s performance and behavior
  • 12. Support for Kafka in OpenTelemetry Kafka Clients: • Javaagent • Tracing Wrappers • Tracing Interceptors Kafka Streams: • Javaagent • Supply Kafka Clients with Tracing OpenTelmetry instrumentation
  • 13. Javaagent - Auto Instrumentation Agent • Aspect Oriented approach • Byte Buddy • Muzzle • Extension support • Service Provider Interface (SPI) for tracer customization • Installed at runtime through `-javaagent` Java option OpenTelmetry instrumentation agent - how does it work?
  • 14. Tracing Interceptors • Standard Consumer / Producer Interceptor implementations • Installed through Interceptor configuration Tracing Interceptors - how do they work?
  • 15. Tracing Wrappers • Standard Consumer / Producer Interface implementations • Installed through code • Uses java.reflect.Proxy to intercept relevant method calls and add tracing behaviour Tracing Wrappers - how do they work?
  • 16. • What is Distributed Tracing (DT)? • What is OpenTelemetry? • Kafka Client instrumentation • Kafka Streams instrumentation • Kafka Connect instrumentation Section: Kafka Client instrumentation
  • 17. Tracing Consumer Producer Applications Application Flow Trace
  • 18. Tracing Consumer Producer Applications Kafka Receive Telemetry Enabled
  • 19. Tracing Consumer Producer Applications Kafka Receive Telemetry Enabled
  • 20. Tracing Consumer Producer Applications Kafka Receive Telemetry Enabled
  • 21. Tracing Consumer Producer Applications Kafka Receive Telemetry Disabled
  • 22. Tracing Consumer Producer Applications Kafka Receive Telemetry Disabled
  • 23. Tracing Consumer Producer Applications Kafka Receive Telemetry Disabled
  • 24. Comparison of instrumentation methods Interceptor / Wrapper Javaagent
  • 25. Comparison of instrumentation methods - Producer Interceptor Javaagent Wrapper
  • 26. Comparison of instrumentation methods - Consumer Interceptor Javaagent Wrapper
  • 27. Comparison of instrumentation methods Interceptor Wrapper Javaagent Installation Config or Code Code Runtime Producer Metadata Limited Full Full Consumer Metadata Full Full Full Consumer Local Context Not propagated Not propagated Propagated Library Kafka-clients-2.6 Kafka-clients-2.6 Kafka-clients-0.11
  • 28. • What is Distributed Tracing (DT)? • What is OpenTelemetry? • Kafka Client instrumentation • Kafka Streams instrumentation • Kafka Connect instrumentation Section: Kafka Client instrumentation
  • 29. Kafka Streams support • Kafka Streams specific Process span implementation in Javaagent • Stateless Kafka Streams processing pipelines • Limitations: • Non-javaagent implementation limitations • Stateful operation support • Caching in stateful operations
  • 30. Kafka Streams support - Stateless Javaagent Interceptor / Wrapper
  • 31. Kafka Streams support - Stateless Javaagent Interceptor / Wrapper
  • 32. Kafka Streams support - Stateless Interceptor / Wrapper
  • 33. Kafka Streams support - Stateless Interceptor / Wrapper Javaagent
  • 34. Kafka Streams - Stateful - No Caching
  • 35. Kafka Streams - Stateful - No Caching - Aggregate Span
  • 36. Kafka Streams - Stateful - No Caching - Aggregate Span
  • 37. Kafka Streams - Stateful - No Caching - Aggregate Span
  • 38. Kafka Streams - Stateful - No Caching - Aggregate Span
  • 39. Kafka Streams - Stateful - No Caching - Wrapped Store
  • 40. Kafka Streams - Stateful - No Caching - Wrapped Store
  • 41. Kafka Streams - Stateful - No Caching - Wrapped Store
  • 42. Kafka Streams - Stateful - Caching
  • 43. Kafka Streams - Stateful - Caching - Aggregate
  • 44. Kafka Streams - Stateful - Caching - Aggregate
  • 45. Kafka Streams - Stateful - Caching - Aggregate
  • 46. Kafka Streams support - summary • Supported as is with Javaagent: • Stateless • Stateful - with limitations - single thread context, - no caching • Wrapping State Store approach • Inlining Span creation into Stateful operations • Transformer hack - possible repartitioning
  • 47. • What is Distributed Tracing (DT)? • What is OpenTelemetry? • Kafka Client instrumentation • Kafka Streams instrumentation • Kafka Connect instrumentation Section: Kafka Client instrumentation
  • 48. Kafka Connect support - Source Task
  • 49. Kafka Connect support - Source Task
  • 50. Kafka Connect support - Source Task
  • 51. Kafka Connect support - Source Task
  • 52. Kafka Connect support - Sink Task
  • 53. Kafka Connect support - Sink Task
  • 54. Kafka Connect support - Sink Task
  • 55. Future plans & More Information confluent.io/community/ask-the-community rkolesnev@confluent.io https://github.com/rkolesnev/kafka-opentelemetry