-
Notifications
You must be signed in to change notification settings - Fork 162
databricks adbc driver telemetry lld #3624
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
databricks adbc driver telemetry lld #3624
Conversation
Signed-off-by: Sreekanth Vadigi <[email protected]>
| ## 3. Architecture Overview | ||
|
|
||
| ### 3.1 High-Level Design | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please make this a mermaid diagram
| │ - /telemetry-unauth (unauthenticated - connection errors) │ | ||
| └─────────────────────────────────────────────────────────────────┘ | ||
| │ | ||
| ▼ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please remove the databricsk internal implementation
| /// Collects and aggregates telemetry events for a connection. | ||
| /// Thread-safe and non-blocking. | ||
| /// </summary> | ||
| internal sealed class TelemetryCollector : IDisposable |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we replace the methods with just one record method with an operation type?
| ``` | ||
|
|
||
| **Implementation Details**: | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we don't need this level of detail in a design doc, in stead we should focus more on interface/contract between different class objects
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
focus on adding more class diagram and sequence diagram, etc, instead of putting big block of code into the design doc.
| EnqueueEvent(telemetryEvent); | ||
| } | ||
|
|
||
| public void RecordStatementExecute( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what will happen, if data of same statement being reported multiple times, will our backend merge them?
| ``` | ||
|
|
||
| ### 9.3 Data Residency Compliance | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we need this section?
|
|
||
| #### 11.1.1 TelemetryCollector Tests | ||
|
|
||
| **File**: `TelemetryCollectorTests.cs` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe just a list of test case name, no need for detail code.
| } | ||
| ``` | ||
|
|
||
| ### 11.4 Mock Endpoint Testing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we need this?
|
|
||
| ## 12. Migration & Rollout | ||
|
|
||
| ### 12.1 Rollout Phases |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let's remove this section
| ``` | ||
| ``` | ||
|
|
||
| #### Internal Documentation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove this section
| @@ -0,0 +1,11 @@ | |||
| 1. "can you understand the content present in this google doc: {telemetry-design-doc-url}" | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How do you plugin the actual url? Is this a databricks internal google doc link?
| @@ -0,0 +1,11 @@ | |||
| 1. "can you understand the content present in this google doc: {telemetry-design-doc-url}" | |||
|
|
|||
| 2. "can you use google mcp" | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is internal google doc mcp right?
| ```csharp | ||
| private async Task DownloadFileAsync(IDownloadResult downloadResult, ...) | ||
| { | ||
| var sw = Stopwatch.StartNew(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need a separate stopwatch? The existing cloudfetch telemetry already capture this using ActivityTrace.
|
|
||
| 4. "can you check the databricks jdbc repo and understand how it is currently implemented" | ||
|
|
||
| 5. "now, lets go through the arrow adbc driver for databricks present at {project-location}/arrow-adbc/csharp/src/Drivers/Databricks, and understand its flow" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we ask llm to also go through this PR of how existing tracing/exporter framework is implemented: #3315.
I believe this can potentially reduce this complexity of our design and we can reuse some of the existing components.
| { | ||
| Debug.WriteLine($"Failed to check telemetry feature flag: {ex.Message}"); | ||
| // Default to enabled if check fails | ||
| return true; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Default to enable? Is this expected? Any side-effect(perf) for this exporter?
Low level design doc for telemetry in databricks ADBC driver