feat(csharp): wire telemetry into connection/statement lifecycle with E2E tests#308
feat(csharp): wire telemetry into connection/statement lifecycle with E2E tests#308jadewang-db merged 26 commits intomainfrom
Conversation
9853bc1 to
085cb62
Compare
085cb62 to
3e0f27c
Compare
3e0f27c to
6459a5a
Compare
6459a5a to
7f53ea8
Compare
7f53ea8 to
30178db
Compare
30178db to
67239e6
Compare
67239e6 to
c9453b4
Compare
c9453b4 to
06e6163
Compare
|
[High] Static mutable
Suggestion: Consider one of:
This comment was generated with GitHub MCP. |
|
[High] Blocking async in
DisposeTelemetryAsync().GetAwaiter().GetResult();This pattern can deadlock when called from a synchronization context that captures the current thread (e.g., ASP.NET classic, UI threads). While the Suggestion: Consider implementing This comment was generated with GitHub MCP. |
|
[Medium] Performance test name misleading — asserts 50%, not 1%
The test is named Assert.True(overheadPercent < 50.0,
$"Telemetry overhead {overheadPercent:F2}% exceeds acceptable threshold of 50%");Either rename the test to match the threshold (e.g., This comment was generated with GitHub MCP. |
|
[Medium] Comment typos — missing
/// Follows the graceful shutdown sequence: flush → release client → release feature flags.is actually: / Follows the graceful shutdown sequence: flush → release client → release feature flags.And line 1089: / Step 1: Flush pending metricsBoth are missing a slash — should be This comment was generated with GitHub MCP. |
Remove WithFormatEnumsAsIntegers and WithFormatDefaultValues from the proto JsonFormatter so enums serialize as uppercase string names (e.g., "THRIFT", "PAT", "QUERY") instead of integers, matching the JDBC driver's telemetry output. Co-authored-by: Isaac
06290a0 to
4c37917
Compare
|
🚀 Integration tests triggered! View workflow run |
|
🔒 Integration test approval reset New commits were pushed to this PR. The A maintainer must re-review the changes and re-add the label to trigger tests again. Why is this necessary?
Latest commit: 14a80df |
|
🚀 Integration tests triggered! View workflow run |
🥞 Stacked PR
Use this link to review incremental changes.
Summary
DatabricksConnection(feature flag check, per-host client management, session context creation) and graceful disposal with reference countingExecuteQuery,ExecuteQueryAsync,ExecuteUpdate, andExecuteUpdateAsyncinDatabricksStatementto capture telemetry context (statement type, result format, compression, statement ID, errors) and emit one telemetry event per statement executionCreateTelemetryHttpClientusing full auth/proxy handler chain for telemetry exportTest Plan