Skip to content

Extend Debezium Operator to support OpenTelemetry configuration #1896

@mfvitale

Description

@mfvitale

This issue extends the Debezium Operator to configure OpenTelemetry Java Agent on Debezium Server instances. The operator will inject necessary environment variables and resource attributes, allowing users to enable OpenTelemetry-based monitoring through the DebeziumServer custom resource. This provides an alternative to the existing JMX Exporter configuration.

Tasks

  • Extend DebeziumServer CRD schema with OpenTelemetry field

    • Add spec.runtime.metrics.opentelemetry field to CRD
    • Include sub-fields: enabled (boolean), collector.endpoint (string)
    • Update CRD validation rules
    • Regenerate CRD manifests and API types
  • Implement OpenTelemetry Agent configuration logic

    • Add controller logic to process opentelemetry configuration
    • Generate appropriate pod configuration when Otel is enabled
    • Handle conditional enablement based on CRD spec
  • Inject OpenTelemetry environment variables

    • Set OTEL_AGENT_ENABLED=true when OpenTelemetry is enabled
    • Configure OTEL_EXPORTER_OTLP_ENDPOINT from spec or use default
    • Set OTEL_SERVICE_NAME to the pipeline ID
    • Configure OTEL_METRICS_EXPORTER=otlp
  • Configure OpenTelemetry resource attributes

    • Inject service.name resource attribute with pipeline ID value
    • Inject debezium.connector.type resource attribute with connector type (postgresql, mysql, etc.)
    • Set deployment.environment or other contextual attributes
    • Use environment variable OTEL_RESOURCE_ATTRIBUTES for configuration

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

Status
Released

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions