coder / coder/vscode-coder

Show RAM usage in the VS Code status bar

Aperta
#1,027 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Feature vs-code
Lingua principale
TypeScript
Stelle
130
Fork
48
Merge medio
3g 3h
PR unite (30g)
15

Descrizione

## Feature request

Please add a way for the Coder Remote VS Code extension to show workspace RAM usage directly in the VS Code status bar, alongside or instead of the current first agent metadata value.

Today, Coder workspace templates commonly expose both CPU and RAM through agent metadata, for example:

```hcl
metadata {
display_name = "CPU Usage"
key = "0_cpu_usage"
script = "coder stat cpu"
interval = 10
timeout = 1
}

metadata {
display_name = "RAM Usage"
key = "1_ram_usage"
script = "coder stat mem"
interval = 10
timeout = 1
}
```

The VS Code extension appears to render the first metadata value in the status bar and place the full metadata list in the tooltip. In practice this means CPU is often visible in the status bar, while RAM requires opening the Coder sidebar or hovering the status item.

## Why RAM should be more visible

In Kubernetes-backed workspaces, CPU and RAM pressure have very different failure modes:

- When CPU maxes out, Kubernetes throttles the container and work usually just takes longer.
- When RAM maxes out, Kubernetes can OOM-kill the pod and restart the workspace.

That makes RAM usage much more important to watch continuously. A status-bar RAM indicator would give users time to stop processes, reduce workload, or resize the workspace before the pod is killed.

## Suggested UX

Show RAM usage directly in the VS Code status bar when RAM metadata is available, for example:

```text
RAM 54.1/64 GiB (85%)
```

or a compact variant:

```text
54.1/64 GiB RAM (85%)
```

Possible behavior:

- Prefer metadata whose display name/key clearly represents RAM or memory usage.
- Keep CPU and other metadata available in the tooltip.
- Show a warning state when memory usage is high, such as above 80% or 90%.
- If RAM data is unavailable, do not show a misleading value; keep current behavior or explicitly indicate that memory usage is unavailable.

## Acceptance criteria

- The VS Code status bar can show RAM usage for the active Coder workspace.
- The visible status text includes used memory, memory limit/total, and percentage when available.
- High-memory states are visually noticeable.
- Existing agent metadata tooltip behavior is preserved or improved.
- Missing/unparseable RAM metadata is handled explicitly and does not look like a successful live reading.

## Relevant code paths

- `src/remote/remote.ts` currently creates the agent metadata status bar item and uses the first metadata event as the status text.
- `coder/coder` already provides `coder stat mem`, and default Kubernetes template metadata includes `RAM Usage`, so this may be possible as a display-priority improvement without requiring new workspace telemetry.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia in src/remote/remote.ts, dove l’elemento della barra di stato dei metadati dell’agente usa il primo evento di metadati come testo di stato. Esamina come vengono rappresentati i metadati di coder stat mem e del template Kubernetes predefinito, quindi traccia il comportamento del tooltip. Il lavoro è completo quando l’area di lavoro attiva può mostrare la memoria utilizzata, il totale e la percentuale, contrassegnare visibilmente un utilizzo elevato, conservare i dettagli dei metadati e gestire dati RAM mancanti o non analizzabili senza implicare che la lettura sia valida.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
typescript, vscode
Ambito
desktop, developer-experience
Tipo di issue
Funzionalità
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
68/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.