Skip to content

HBASE-29349 Migrate OpenTelemetry semconv from 1.29.0-alpha to 1.42.0#8479

Open
mnpoonia wants to merge 1 commit into
apache:masterfrom
mnpoonia:feature/otel-bom-consolidation
Open

HBASE-29349 Migrate OpenTelemetry semconv from 1.29.0-alpha to 1.42.0#8479
mnpoonia wants to merge 1 commit into
apache:masterfrom
mnpoonia:feature/otel-bom-consolidation

Conversation

@mnpoonia

Copy link
Copy Markdown
Contributor

Upgrade to stable OpenTelemetry semantic conventions with zero breaking changes using a dual-attribute migration strategy.

Changes:

  • pom.xml: Update opentelemetry-semconv version 1.29.0-alpha -> 1.42.0
  • HBaseSemanticAttributes.java: Add 10 new stable attributes with 14 deprecated aliases for backward compatibility
  • TableMapReduceUtil.java: Update semconv class references for MapReduce dependency checking

New Stable Attributes (10):

  • DB_SYSTEM_NAME, DB_SYSTEM_NAME_VALUE (replaces DB_SYSTEM/DB_SYSTEM_VALUE)
  • DB_NAMESPACE (replaces DB_NAME)
  • DB_OPERATION_NAME (replaces DB_OPERATION)
  • NETWORK_PEER_ADDRESS, NETWORK_PEER_PORT (replaces NET_PEER_NAME/NET_PEER_PORT)
  • RPC_SYSTEM, RPC_METHOD (defined directly, not in JAR)
  • EXCEPTION_TYPE, EXCEPTION_MESSAGE (from stable ExceptionAttributes)

Deprecated Attributes (14):

  • DB_SYSTEM, DB_SYSTEM_VALUE -> alias to DB_SYSTEM_NAME/DB_SYSTEM_NAME_VALUE
  • DB_NAME -> alias to DB_NAMESPACE
  • DB_OPERATION -> alias to DB_OPERATION_NAME
  • DB_CONNECTION_STRING, DB_USER -> custom attributes (removed from stable)
  • RPC_SERVICE -> deprecated (merged into rpc.method in spec)
  • NET_PEER_NAME -> alias to NETWORK_PEER_ADDRESS
  • NET_PEER_PORT -> alias to NETWORK_PEER_PORT (stable version)

All deprecated attributes marked with @deprecated annotation and Javadoc explaining migration path. Will be removed in HBase 5.x.

Unchanged (20):

  • 17 HBase custom attributes (TABLE_KEY, REGION_NAMES_KEY, etc.)
  • 3 enums (Operation, RpcSystem, ReadType)

Architecture:

  • Single-file change to HBaseSemanticAttributes.java maintains facade
  • 42 downstream files work without modification
  • Dual-attribute phase enables gradual migration
  • MapReduce jobs ship all required semconv classes to workers

Testing:

  • Full multi-module build succeeds
  • 67 tracing tests pass (connection, region, exception attributes)
  • No compilation errors in dependent modules

Upgrade to stable OpenTelemetry semantic conventions with zero breaking
changes using a dual-attribute migration strategy.

Changes:
- pom.xml: Update opentelemetry-semconv version 1.29.0-alpha -> 1.42.0
- HBaseSemanticAttributes.java: Add 10 new stable attributes with 14
  deprecated aliases for backward compatibility
- TableMapReduceUtil.java: Update semconv class references for MapReduce
  dependency checking

New Stable Attributes (10):
- DB_SYSTEM_NAME, DB_SYSTEM_NAME_VALUE (replaces DB_SYSTEM/DB_SYSTEM_VALUE)
- DB_NAMESPACE (replaces DB_NAME)
- DB_OPERATION_NAME (replaces DB_OPERATION)
- NETWORK_PEER_ADDRESS, NETWORK_PEER_PORT (replaces NET_PEER_NAME/NET_PEER_PORT)
- RPC_SYSTEM, RPC_METHOD (defined directly, not in JAR)
- EXCEPTION_TYPE, EXCEPTION_MESSAGE (from stable ExceptionAttributes)

Deprecated Attributes (14):
- DB_SYSTEM, DB_SYSTEM_VALUE -> alias to DB_SYSTEM_NAME/DB_SYSTEM_NAME_VALUE
- DB_NAME -> alias to DB_NAMESPACE
- DB_OPERATION -> alias to DB_OPERATION_NAME
- DB_CONNECTION_STRING, DB_USER -> custom attributes (removed from stable)
- RPC_SERVICE -> deprecated (merged into rpc.method in spec)
- NET_PEER_NAME -> alias to NETWORK_PEER_ADDRESS
- NET_PEER_PORT -> alias to NETWORK_PEER_PORT (stable version)

All deprecated attributes marked with @deprecated annotation and Javadoc
explaining migration path. Will be removed in HBase 5.x.

Unchanged (20):
- 17 HBase custom attributes (TABLE_KEY, REGION_NAMES_KEY, etc.)
- 3 enums (Operation, RpcSystem, ReadType)

Architecture:
- Single-file change to HBaseSemanticAttributes.java maintains facade
- 42 downstream files work without modification
- Dual-attribute phase enables gradual migration
- MapReduce jobs ship all required semconv classes to workers

Testing:
- Full multi-module build succeeds
- 67 tracing tests pass (connection, region, exception attributes)
- No compilation errors in dependent modules
@mnpoonia

Copy link
Copy Markdown
Contributor Author

@NihalJain @ndimiduk This is same as what yoy guys were doing in
github.com//pull/7016/

@mnpoonia

mnpoonia commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

I was thinking if we can have this in branch-3 and branch-4 and can also have PR in branch-2 and branch-2.6
But in branch-3 and branch-4 (master) We can actually drop old keys.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant