databricks-cli/acceptance/bundle/debug
shreyas-goenka 06b71fe5da
Add synchronous logger for telemetry (#2432)
## Changes
This PR adds a synchronous telemetry logger for the CLI with a max
timeout of 3 seconds. Due to the 3-second timeout configuration, this is
only meant to be used in long-running commands.

This is a short-term solution. Eventually, we'd like to transition to a
daemon process to upload the telemetry logs to amortise the costs of
configuring authentication and maintaining a warm pool of HTTP
connections, as well as a better UX for the end user.

Note that users can set the `DATABRICKS_CLI_DISABLE_TELEMETRY`
environment variable to disable telemetry collection.

## Why
To collect telemetry, which was previously inaccessible to us, and
answer questions like which templates customers like to use and which
DABs features would be safe to deprecate.

## Tests
Unit and acceptance tests. 

Also manually verified that the telemetry upload works:
```
(artifact-playground) ➜  cli git:(sync-logger) cli selftest send-telemetry --debug
15:58:20 Info: start pid=40386 version=0.0.0-dev+a2825ca89a23 args="cli, selftest, send-telemetry, --debug"
15:58:20 Debug: Loading DEFAULT profile from /Users/shreyas.goenka/.databrickscfg pid=40386 sdk=true
15:58:20 Info: completed execution pid=40386 exit_code=0
15:58:21 Debug: POST /telemetry-ext
> {
>   "items": null,
>   "protoLogs": [
>     "{\"frontend_log_event_id\":\"82d29b3a-d5ff-48f3-8a21-dae6e08d2999\",\"entry\":{\"databricks_cli_log\":{\"... (232 more bytes)",
>     "{\"frontend_log_event_id\":\"d6be8220-7db8-45d9-97d6-4c09c25e2664\",\"entry\":{\"databricks_cli_log\":{\"... (232 more bytes)"
>   ],
>   "uploadTime": 1741186700967
> }
< HTTP/2.0 200 OK
< {
<   "errors": null,
<   "numProtoSuccess": 2,
<   "numSuccess": 0
< } pid=40386 sdk=true
```
2025-03-12 13:05:10 +00:00
..
databricks.yml Always print warnings and errors; clean up format (#2213) 2025-02-07 11:29:40 +00:00
out.stderr.txt Add synchronous logger for telemetry (#2432) 2025-03-12 13:05:10 +00:00
output.txt Always print warnings and errors; clean up format (#2213) 2025-02-07 11:29:40 +00:00
script Remove bundle.{Parallel,ReadOnlyBundle} (#2414) 2025-03-03 13:35:36 +00:00
test.toml acc: replace LocalOnly option with Local & Cloud (#2387) 2025-02-26 16:01:49 +00:00