jadewang-db opened a new pull request, #3082:
URL: https://github.com/apache/arrow-adbc/pull/3082
…n support
## Summary
- Adds W3C trace context propagation to the Databricks C# driver via HTTP
headers
- Makes trace propagation configurable with options for enablement, header
names, and trace state
- Integrates with existing ADBC tracing infrastructure to support
distributed tracing
## Details
This PR implements W3C Trace Context (traceparent/tracestate) propagation
for the Databricks C# driver. When distributed tracing is enabled, the
driver now propagates trace context to Databricks servers, enabling
end-to-end request tracing across the distributed system.
### Implementation
- Added `TracingDelegatingHandler` to inject trace headers into HTTP
requests
- Integrated handler into the existing HTTP pipeline in
`DatabricksConnection`
- Added configuration options:
- `adbc.databricks.trace_propagation.enabled` (default: true)
- `adbc.databricks.trace_propagation.header_name` (default:
"traceparent")
- `adbc.databricks.trace_propagation.state_enabled` (default: false)
### Behavior
1. If `Activity.Current` exists, uses its trace context
2. Falls back to trace parent from connection options
(`adbc.telemetry.trace_parent`)
3. Optionally includes trace state header when enabled
4. Supports custom header names for compatibility with different systems
## Test plan
- [x] Added comprehensive unit tests for `TracingDelegatingHandler`
- [x] Added tests for configuration parsing in `DatabricksConnectionTest`
- [x] Verified trace header propagation with mock HTTP handlers
- [x] Tested with and without active activities
- [x] Tested custom header names and trace state propagation
- [ ] Manual testing with actual Databricks instance
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]