Add telemetry events for SSH tunnel connections#4707
Open
anton-107 wants to merge 8 commits intoantonnek/auto-session-namesfrom
Open
Add telemetry events for SSH tunnel connections#4707anton-107 wants to merge 8 commits intoantonnek/auto-session-namesfrom
anton-107 wants to merge 8 commits intoantonnek/auto-session-namesfrom
Conversation
Move detailed diagnostic messages (SSH key paths, secrets scope, remote user/port, job submission details, upload progress) from cmdio.LogString to log.Infof so they only appear with --log-level=info. Add spinners for long-running operations: binary upload, cluster state check, job startup wait, and metadata polling. Keep concise user-facing step messages (Connecting, Uploading, Starting, Connected) for progress visibility. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add TrackElapsedTime() method to the spinner that shows a running MM:SS stopwatch next to the spinner message. The time updates on every spinner tick (200ms). Enable it for all SSH connect spinners so users can see how long each step has been running. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…upport Remove the requirement for --name in serverless SSH connect. Sessions are now auto-generated with human-readable names (e.g. databricks-gpu-a10-20260310-a1b2c3), tracked in ~/.databricks/ssh-tunnel-sessions.json, and offered for reconnection on subsequent runs. Stale sessions are cleaned up automatically. Sessions expire after 24 hours. Also fixes known_hosts key mismatches for serverless by disabling strict host key checking (identity verified via Databricks auth). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…4693) ## Summary - Replace `time.Now().UnixMilli()` with `nowMilli()` in testserver fake implementations (pipelines, catalogs, external locations, registered models) to guarantee strictly increasing millisecond timestamps - Add a `ruleguard` lint rule to prevent `time.Now().UnixMilli()` in `libs/testserver/` (except `fake_workspace.go` where the helper is defined) - Fix `CreatedAt`/`UpdatedAt` in create handlers to use the same timestamp value, matching real API behavior Fixes flaky test `TestAccept/bundle/resource_deps/pipelines_recreate/DATABRICKS_BUNDLE_ENGINE=direct` where a pipeline's `last_modified` and a job's `created_time` could collide to the same millisecond, causing `[UNIX_TIME_MILLIS][0]` vs `[UNIX_TIME_MILLIS][1]` index mismatch in test output. Example failure: https://github.com/databricks/cli/actions/runs/22710298364/job/65846540329 ## Test plan - [x] `TestAccept/bundle/resource_deps/pipelines_recreate` passes consistently (verified with `-count=3`) - [x] `make lintfull` passes with 0 issues - [x] `make test` passes (template test failures are pre-existing and unrelated) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Wrap settings JSON in { } with proper indentation for visual clarity
- Add blank lines around the settings block
- Default to yes (Y/n) when prompting to apply settings
- Shorten inline comments for less noise
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Track SSH tunnel usage by logging an SshTunnelEvent at the end of each connection attempt. Captures compute type (dedicated/serverless), accelerator, IDE, client mode, cluster ID, server start time, and errors. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Collaborator
|
Commit: bd0048b
16 interesting tests: 7 SKIP, 6 RECOVERED, 3 flaky
Top 20 slowest tests (at least 2 minutes):
|
Contributor
shreyas-goenka
left a comment
There was a problem hiding this comment.
Can you create the proto PR as well? I believe the lumberjack team will have some feedback. We also have linters in universe that might require changing the field names.
Note, some information like ErrorMessages can only be logged in regional logfood. I'm checking with legal whether we have approval for this, but as of this moment we do not have permission to log arbitary strings / error messages in regional logfoods.
b221e9b to
c280d1d
Compare
Base automatically changed from
antonnek/ide-settings-prompt-improvements
to
antonnek/auto-session-names
March 18, 2026 16:54
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
SshTunnelEventtelemetry proto tracking compute type (dedicated/serverless), accelerator, IDE, client mode, cluster ID, server start time, and errorsssh connectto log a telemetry event at the end of each connection attempt (success or failure)BuildTelemetryEventJIRA: DECO-26526
Test plan
go test ./experimental/ssh/... ./libs/telemetry/...)TestBuildTelemetryEventcovers dedicated/serverless, SSH/proxy/IDE modes, and reconnect detectiondatabricks ssh connect --cluster <id>and verify telemetry event is logged (visible withDATABRICKS_CLI_TELEMETRY_TIMEOUT=10+ debug logging)🤖 Generated with Claude Code