Skip to content

Create OpenTelemetry distributed tracing example with Strimzi Kafka and Apicurio Registry #7109

@carlesarnal

Description

@carlesarnal

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

  1. Schema registration → Message production → Message consumption
  2. Schema lookup/caching during serialization/deserialization
  3. Error scenarios (schema validation failures, compatibility checks)
  4. 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

No type

Projects

Status

In Review

Relationships

None yet

Development

No branches or pull requests

Issue actions