-
Notifications
You must be signed in to change notification settings - Fork 311
Open
Description
Summary
Create a comprehensive example demonstrating OpenTelemetry (OTel) distributed tracing across the entire stack, including Strimzi Kafka and Apicurio Registry. This example should showcase end-to-end request tracing from producer to consumer with schema validation through the registry.
Motivation
With the new OpenTelemetry implementation in Apicurio Registry, users need a reference example showing how to:
- Configure OTel tracing in a realistic distributed environment
- Trace requests across Kafka producers/consumers using Strimzi
- Correlate traces between Kafka messaging and Registry schema operations
- Visualize the complete request flow in a tracing backend (e.g., Jaeger)
Proposed Example Components
Infrastructure
- Strimzi Kafka Operator - Kafka cluster on Kubernetes
- Apicurio Registry - With KafkaSQL or SQL storage, OTel enabled
- Jaeger (or similar) - Tracing backend for visualization
- OpenTelemetry Collector - For trace collection and export
Application Components
-
Producer Application - Java/Quarkus app that:
- Registers schemas with Apicurio Registry
- Produces Avro/Protobuf messages to Kafka
- Propagates trace context through Kafka headers
-
Consumer Application - Java/Quarkus app that:
- Retrieves schemas from Apicurio Registry
- Consumes and deserializes messages
- Continues the distributed trace
Tracing Scenarios to Demonstrate
- Schema registration → Message production → Message consumption
- Schema lookup/caching during serialization/deserialization
- Error scenarios (schema validation failures, compatibility checks)
- Registry API calls correlated with Kafka operations
Deliverables
- Docker Compose setup for local development
- Kubernetes manifests for Strimzi + Registry + Jaeger deployment
- Sample producer application with OTel instrumentation
- Sample consumer application with OTel instrumentation
- README with setup instructions and architecture diagram
- Documentation explaining trace propagation patterns
Technical Considerations
- Use Apicurio Registry Kafka Serdes with OTel context propagation
- Configure appropriate sampling strategies for production-like scenarios
- Include both automatic and manual instrumentation examples
- Show trace baggage usage for cross-cutting concerns
Related
- New OTel implementation in Apicurio Registry
- Strimzi Kafka Operator documentation
- Apicurio Registry Serdes libraries
Labels
kind/feature, area/examples, area/observability
Metadata
Metadata
Assignees
Type
Projects
Status
In Review