Skip to content

[Umbrella] camp resource self-monitoring + self-protection #154

Description

@rolker

Goal

Give camp a single source of truth for its own resource footprint, use it to
protect itself from resource-exhaustion crashes (the salmon live-data crash,
#153), and report health via ROS diagnostics — with a lightweight status-bar
indicator for the operator riding on the same data.

Motivated by #153: camp crashed on the salmon operator station after enabling live
data because the live tile cache grows unbounded and exhausted memory/VRAM. camp
had no awareness of its own footprint and no way to shed load before crashing.

Design

One ResourceMonitor samples the process footprint and a self-accounted GPU-byte
counter
(camp creates every texture itself, so it can total its own VRAM use
portably — the number that actually bounds the live cache). Everything else
consumes that snapshot: self-protection acts on it, ROS diagnostics report it, and
the status bar displays it.

Children

Dependency order

#155 first (everyone needs the numbers) → then #156 (incl. #160), #157, #158
proceed in parallel against the snapshot.

Scope note

Self-protection + ROS diagnostics are the lead goals (operator UI is a thin rider,
not a separate effort). Distinct from the OGR/Georeferenced leak (#152), which is
the chart-load path and unrelated to resource monitoring.


Authored-By: Claude Code Agent
Model: Claude Opus 4.8

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions