Skip to content

Commit a169f36

Browse files
Jade Wangclaude
andcommitted
docs: move E2E tests to Phase 1 (test-first approach)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 6cbaa94 commit a169f36

File tree

1 file changed

+31
-27
lines changed

1 file changed

+31
-27
lines changed

docs/designs/fix-telemetry-gaps-design.md

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -631,33 +631,37 @@ The following proto fields are **not applicable** to the C# ADBC driver and will
631631

632632
## Implementation Priority
633633

634-
### Phase 1: SEA Telemetry (Highest Priority - Zero Coverage Today)
635-
1. Extract `TelemetryHelper` from `DatabricksConnection` for shared use
636-
2. Wire `InitializeTelemetry()` into `StatementExecutionConnection` with `mode=SEA`
637-
3. Add `EmitTelemetry()` to `StatementExecutionStatement`
638-
4. Wire telemetry dispose/flush into `StatementExecutionConnection.Dispose()`
639-
640-
### Phase 2: Missing Fields (Low Risk)
641-
5. Populate `runtime_vendor` and `client_app_name` in DriverSystemConfiguration
642-
6. Populate `auth_type` on root log
643-
7. Populate additional DriverConnectionParameters (enable_arrow, rows_fetched_per_block, etc.)
644-
8. Set `WorkspaceId` in TelemetrySessionContext
645-
646-
### Phase 3: ChunkDetails Wiring (Medium Risk - Crosses Component Boundaries)
647-
9. Add `ChunkMetrics` aggregation to `CloudFetchDownloader`
648-
10. Expose metrics via `CloudFetchReader.GetChunkMetrics()`
649-
11. Call `SetChunkDetails()` in `DatabricksStatement.EmitTelemetry()` and `StatementExecutionStatement.EmitTelemetry()`
650-
651-
### Phase 4: Other Behavioral Changes (Medium Risk)
652-
12. Track `retry_count` on SqlExecutionEvent
653-
13. Mark internal calls with `is_internal_call = true`
654-
14. Add metadata operation telemetry (GetObjects, GetTableTypes)
655-
656-
### Phase 5: E2E Test Coverage
657-
15. E2E tests for every populated proto field (both Thrift and SEA)
658-
16. CloudFetch chunk detail tests (requires large enough result set to trigger CloudFetch)
659-
17. SEA-specific telemetry tests
660-
18. Error scenario tests
634+
### Phase 1: E2E Test Infrastructure (Test-First)
635+
1. Build E2E test infrastructure using `CapturingTelemetryExporter` to assert proto field values
636+
2. Write E2E tests for all currently populated proto fields (Thrift) - these establish the baseline
637+
3. Write failing E2E tests for missing fields (auth_type, WorkspaceId, runtime_vendor, etc.) - these drive Phase 2-5
638+
4. Write failing E2E tests for SEA telemetry (expect telemetry events from SEA connections) - these drive Phase 2
639+
5. Write failing E2E tests for ChunkDetails fields - these drive Phase 4
640+
641+
### Phase 2: SEA Telemetry (Highest Priority - Zero Coverage Today)
642+
6. Extract `TelemetryHelper` from `DatabricksConnection` for shared use
643+
7. Wire `InitializeTelemetry()` into `StatementExecutionConnection` with `mode=SEA`
644+
8. Add `EmitTelemetry()` to `StatementExecutionStatement`
645+
9. Wire telemetry dispose/flush into `StatementExecutionConnection.Dispose()`
646+
10. Verify SEA E2E tests from Phase 1 now pass
647+
648+
### Phase 3: Missing Fields (Low Risk)
649+
11. Populate `runtime_vendor` and `client_app_name` in DriverSystemConfiguration
650+
12. Populate `auth_type` on root log
651+
13. Populate additional DriverConnectionParameters (enable_arrow, rows_fetched_per_block, etc.)
652+
14. Set `WorkspaceId` in TelemetrySessionContext
653+
15. Verify missing-field E2E tests from Phase 1 now pass
654+
655+
### Phase 4: ChunkDetails Wiring (Medium Risk - Crosses Component Boundaries)
656+
16. Add `ChunkMetrics` aggregation to `CloudFetchDownloader`
657+
17. Expose metrics via `CloudFetchReader.GetChunkMetrics()`
658+
18. Call `SetChunkDetails()` in `DatabricksStatement.EmitTelemetry()` and `StatementExecutionStatement.EmitTelemetry()`
659+
19. Verify ChunkDetails E2E tests from Phase 1 now pass
660+
661+
### Phase 5: Other Behavioral Changes (Medium Risk)
662+
20. Track `retry_count` on SqlExecutionEvent
663+
21. Mark internal calls with `is_internal_call = true`
664+
22. Add metadata operation telemetry (GetObjects, GetTableTypes)
661665

662666
---
663667

0 commit comments

Comments
 (0)