Skip to content

Remove deprecated messaging & cloud instrumentation APIs (excluding AWS Lambda Events 2.2 and javaagent extension APIs)#15945

Merged
laurit merged 11 commits intomainfrom
copilot/remove-deprecated-messaging-code
Jan 22, 2026
Merged

Remove deprecated messaging & cloud instrumentation APIs (excluding AWS Lambda Events 2.2 and javaagent extension APIs)#15945
laurit merged 11 commits intomainfrom
copilot/remove-deprecated-messaging-code

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Jan 19, 2026

Removal of Deprecated Messaging & Cloud Instrumentation Code

This PR removes deprecated methods and classes across messaging, cloud, and RPC instrumentation modules scheduled for removal in the next major release.

Phase 1: Core API - Messaging & Instrumenter ✅

  • Remove getMessagePayloadSize() from MessagingAttributesGetter (instrumentation-api-incubator)
  • Remove getMessagePayloadCompressedSize() from MessagingAttributesGetter (instrumentation-api-incubator)
  • Remove setSpanNameExtractor() from InstrumenterCustomizer (instrumentation-api-incubator)
  • Remove setSpanStatusExtractor() from InstrumenterCustomizer (instrumentation-api-incubator)

Phase 2: Kafka & JMS Messaging ✅

  • Remove TracingConsumerInterceptor class (kafka-clients-2.6)
  • Remove TracingProducerInterceptor class (kafka-clients-2.6)
  • Remove deprecated test classes for Kafka interceptors
  • Remove internal methods from KafkaTelemetry that were only used by deprecated interceptors
  • Remove setMessagingReceiveInstrumentationEnabled() from KafkaInstrumenterFactory (kafka-clients-common-0.11)
  • Remove setMessagingReceiveInstrumentationEnabled() from JmsInstrumenterFactory (jms-common)
  • Remove setMessagingReceiveInstrumentationEnabled() from SpringKafkaTelemetryBuilder (spring-kafka-2.7)
  • Fix kafka-clients-2.6 build by removing deprecated test tasks

Phase 3: Spring Integration & RocketMQ ✅

  • Remove newChannelInterceptor() from SpringIntegrationTelemetry
  • Remove newTracingConsumeMessageHook() from RocketMqTelemetry
  • Remove newTracingSendMessageHook() from RocketMqTelemetry

Phase 4: NATS ✅

  • Remove newConnection(Options) from NatsTelemetry
  • Remove newConnection(Options.Builder) from NatsTelemetry
  • Fix Javadoc references in NatsTelemetry

Phase 5: AWS SDK & Lambda ✅

  • Remove newRequestHandler() from AwsSdkTelemetry (1.11)
  • Remove setMessagingReceiveInstrumentationEnabled() from AwsSdkTelemetryBuilder (1.11)
  • Remove newExecutionInterceptor() from AwsSdkTelemetry (2.2)
  • Remove setMessagingReceiveInstrumentationEnabled() from AwsSdkTelemetryBuilder (2.2)
  • Fix Javadoc reference in AwsSdkTelemetry (2.2)
  • [~] Remove AWS Lambda Events 2.2 wrapper classes (Reverted per feedback)

Phase 6: gRPC & Dubbo (RPC) ✅

  • Remove newClientInterceptor() from GrpcTelemetry
  • Remove newServerInterceptor() from GrpcTelemetry
  • Remove setClientSpanNameExtractor() from GrpcTelemetryBuilder
  • Remove setServerSpanNameExtractor() from GrpcTelemetryBuilder
  • Remove setClientSpanNameExtractor() from DubboTelemetryBuilder
  • Remove setServerSpanNameExtractor() from DubboTelemetryBuilder

Phase 7: GraphQL, Elasticsearch, Quartz ✅

  • Remove newInstrumentation() from GraphQLTelemetry (12.0)
  • Remove newInstrumentation() from GraphQLTelemetry (20.0)
  • Remove setSpanNameExtractor() from ElasticsearchRest7TelemetryBuilder
  • Remove setSpanNameExtractor() from QuartzTelemetryBuilder

Phase 8: Logback ✅

  • Remove setCaptureLogstashAttributes() from OpenTelemetryAppender (logback-appender-1.0)
  • Remove setCaptureLogstashAttributes() from LoggingEventMapper (logback-appender-1.0)

Reverted Changes (Per Feedback)

  • [~] Remove configure(IgnoredTypesBuilder, ConfigProperties) from IgnoredTypesConfigurer (Reverted)
  • [~] Remove defaultEnabled(ConfigProperties) from InstrumentationModule (Reverted)
  • [~] Remove forceFlush(int, TimeUnit) from OpenTelemetrySdkAccess (Reverted)
  • [~] Remove AWS Lambda Events 2.2 deprecated wrapper classes (Reverted)

Summary

Most deprecated messaging and cloud instrumentation code has been successfully removed. Some items were kept based on reviewer feedback.

Original prompt

Remove Deprecated Messaging & Cloud Instrumentation Code

Affected Modules

Messaging: kafka-clients-2.6, kafka-clients-common-0.11, jms-common, spring-kafka-2.7, spring-integration-4.1, rocketmq-client-4.8, nats-2.17
Cloud Services: aws-sdk-1.11, aws-sdk-2.2, aws-lambda-events-2.2
Other: grpc-1.6, apache-dubbo-2.7, graphql-java-12.0/20.0, elasticsearch-rest-7.0, quartz-2.0, logback-appender-1.0
Core API: instrumentation-api-incubator (messaging, instrumenter)
Javaagent: javaagent-extension-api, javaagent-bootstrap

Removal Plan

Phase 1: Core API - Messaging & Instrumenter

MessagingAttributesGetter (instrumentation-api-incubator) - Remove deprecated methods (L39, L45)

InstrumenterCustomizer (instrumentation-api-incubator) - Remove:

  • Old span name extractor customizer → setSpanNameExtractorCustomizer(UnaryOperator)
  • Old span status extractor customizer → setSpanStatusExtractorCustomizer(UnaryOperator)

Phase 2: Kafka & JMS Messaging

TracingConsumerInterceptor (kafka-clients-2.6) - Remove entire class → Use KafkaTelemetry#consumerInterceptorConfigProperties()

TracingProducerInterceptor (kafka-clients-2.6) - Remove entire class → Use KafkaTelemetry#producerInterceptorConfigProperties()

KafkaInstrumenterFactory (kafka-clients-common-0.11) - Remove setCaptureExperimentalSpanAttributes() → Use setMessagingReceiveTelemetryEnabled(boolean)

JmsInstrumenterFactory (jms-common) - Remove setCaptureExperimentalSpanAttributes() → Use setMessagingReceiveTelemetryEnabled(boolean)

SpringKafkaTelemetryBuilder (spring-kafka-2.7) - Remove setCaptureExperimentalSpanAttributes() → Use setMessagingReceiveTelemetryEnabled(boolean)

Phase 3: Spring Integration & RocketMQ

SpringIntegrationTelemetry - Remove newChannelInterceptor() → Use createChannelInterceptor()

RocketMqTelemetry - Remove:

  • newConsumeMessageHook()createConsumeMessageHook()
  • newSendMessageHook()createSendMessageHook()

Phase 4: NATS

NatsTelemetry - Remove:

  • newConnection(Options)createConnection(Options, ConnectionFactory)
  • newConnection(Options.Builder)createConnection(Options.Builder, ConnectionFactory)

Phase 5: AWS SDK & Lambda

AwsSdkTelemetry (1.11) - Remove newRequestHandler() → Use createRequestHandler()

AwsSdkTelemetryBuilder (1.11) - Remove setCaptureExperimentalSpanAttributes() → Use setMessagingReceiveTelemetryEnabled(boolean)

AwsSdkTelemetry (2.2) - Remove newExecutionInterceptor() → Use createExecutionInterceptor()

AwsSdkTelemetryBuilder (2.2) - Remove setCaptureExperimentalSpanAttributes() → Use setMessagingReceiveTelemetryEnabled(boolean)

AWS Lambda Events (2.2) - Remove entire deprecated wrapper classes:

  • TracingRequestApiGatewayWrapper
  • TracingRequestWrapper
  • TracingSqsEventHandler
  • TracingSqsEventWrapper
  • TracingSqsMessageHandler

Phase 6: gRPC & Dubbo (RPC)

GrpcTelemetry - Remove:

  • newClientInterceptor()createClientInterceptor()
  • newServerInterceptor()createServerInterceptor()

GrpcTelemetryBuilder - Remove:

  • Old client span name extractor → setClientSpanNameExtractorCustomizer(UnaryOperator)
  • Old server span name extractor → setServerSpanNameExtractorCustomizer(UnaryOperator)

DubboTelemetryBuilder - Remove:

  • Old client span name extractor → setClientSpanNameExtractorCustomizer(UnaryOperator)
  • Old server span name extractor → setServerSpanNameExtractorCustomizer(UnaryOperator)

Phase 7: GraphQL, Elasticsearch, Quartz

GraphQLTelemetry (12.0 & 20.0) - Remove newInstrumentation() → Use createInstrumentation()

ElasticsearchRest7TelemetryBuilder - Remove old span name extractor → Use setSpanNameExtractorCustomizer(Function)

QuartzTelemetryBuilder - Remove old span name extractor → Use setSpanNameExtractorCustomizer(Function)

Phase 8: Logback & Javaagent API

OpenTelemetryAppender (logback-appender-1.0) - Remove setCaptureCodeAttributes(boolean) → Use setCaptureLogstashMarkerAttributes(boolean)

LoggingEventMapper (logback-appender-1.0) - Remove setCaptureCodeAttributes(boolean) → Use setCaptureLogstashMarkerAttributes(boolean)

IgnoredTypesConfigurer (javaagent-extension-api) - Remove old configure method → Use configure(IgnoredTypesBuilder)

InstrumentationModule (javaagent-extension-api) - Remove old method → Use defaultEnabled() (will be removed in 3.0.0)

OpenTelemetrySdkAccess (javaagent-bootstrap) - Remove deprecated member

Testing Strategy

Gradle Test Tasks:

# Messaging - Kafka
./gradlew :instrumentation:kafka:kafka-clients:kafka-clients-2.6:library:test
./gradlew :instrumentation:kafka:kafka-clients:kafka-clients-common:library:test
./gradlew :instrumentation:spring:spring-kafka-2.7:library:test

# Messaging - JMS
./gradlew :instrumentation:...

</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

✨ Let Copilot coding agent [set things up for you](https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot) — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI changed the title [WIP] Remove deprecated messaging and cloud instrumentation code Remove deprecated messaging & cloud instrumentation APIs Jan 20, 2026
Copilot AI requested a review from trask January 20, 2026 00:00
- Restored all deprecated AWS Lambda Events 2.2 wrapper classes
- Restored deprecated methods in IgnoredTypesConfigurer
- Restored deprecated methods in InstrumentationModule
- Restored deprecated methods in OpenTelemetrySdkAccess

Co-authored-by: trask <[email protected]>
Copilot AI changed the title Remove deprecated messaging & cloud instrumentation APIs Remove deprecated messaging & cloud instrumentation APIs (excluding AWS Lambda Events 2.2 and javaagent extension APIs) Jan 20, 2026
Copilot AI requested a review from trask January 20, 2026 02:37
@github-actions github-actions Bot added the test native This label can be applied to PRs to trigger them to run native tests label Jan 20, 2026
@trask
Copy link
Copy Markdown
Member

trask commented Jan 20, 2026

@copilot fix :instrumentation:aws-sdk:aws-sdk-2.2:library:compileJava

Update Javadoc to reference createExecutionInterceptor() instead of the removed newExecutionInterceptor() method

Co-authored-by: trask <[email protected]>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Jan 20, 2026

@copilot fix :instrumentation:aws-sdk:aws-sdk-2.2:library:compileJava

Fixed in commit 9f24516 - updated Javadoc to reference createExecutionInterceptor() instead of the removed newExecutionInterceptor() method

Copilot AI requested a review from trask January 20, 2026 04:29
@trask
Copy link
Copy Markdown
Member

trask commented Jan 21, 2026

@copilot fix :instrumentation:nats:nats-2.17:library:compileJava

Update Javadoc to reference createConnection() instead of the removed newConnection() methods

Co-authored-by: trask <[email protected]>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Jan 21, 2026

@copilot fix :instrumentation:nats:nats-2.17:library:compileJava

Fixed in commit abd43a0 - updated Javadoc to reference createConnection() instead of the removed newConnection() methods

@trask
Copy link
Copy Markdown
Member

trask commented Jan 22, 2026

- Removed testDeprecated and testDeprecatedSuppressReceiveSpans tasks since the deprecated test classes were removed
- Removed excludeTestsMatching filter that was excluding deprecated tests
- Applied spotless formatting fixes

Co-authored-by: trask <[email protected]>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Jan 22, 2026

@copilot fix

Task :instrumentation:kafka:kafka-clients:kafka-clients-2.6:library:testDeprecated failed
...

Fixed in commit 6720a49:

  • Removed testDeprecated and testDeprecatedSuppressReceiveSpans tasks from kafka-clients-2.6 build file (the deprecated test classes were already removed)
  • Ran spotlessApply to format code

@trask trask marked this pull request as ready for review January 22, 2026 03:48
@trask trask requested a review from a team as a code owner January 22, 2026 03:48
@laurit laurit merged commit a241592 into main Jan 22, 2026
88 checks passed
@laurit laurit deleted the copilot/remove-deprecated-messaging-code branch January 22, 2026 08:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test native This label can be applied to PRs to trigger them to run native tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants