This group explains the process-level attribution that sits above individual subsystem counters.
Observability fields and metrics:
/_mem.process_breakdown/_details.runtime.memory.process_breakdownprocess.memory.rss.anon.bytesprocess.memory.rss.file.bytesprocess.memory.rss.shmem.bytesprocess.memory.js_managed.bytesprocess.memory.js_external_non_array_buffers.bytesprocess.memory.unattributed.bytesprocess.memory.unattributed_anon.bytes
Where implemented:
src/runtime_memory.tsparseLinuxStatusRssBreakdown(...)readLinuxStatusRssBreakdown(...)buildProcessMemoryBreakdown(...)
src/app_core.ts- snapshot composition
- metrics emission
Platform behavior:
- on Linux, the breakdown uses
/proc/self/statusfields:RssAnonRssFileRssShmem
- on other platforms, the endpoint still reports
unattributed_rss_bytes, but the anon/file/shmem fields arenull
Interpretation rules:
js_managed_bytesisheap_used_bytes + external_bytesmapped_file_bytesis the tracked file-backed mmap footprint from runtime cachessqlite_runtime_bytesis the current SQLite allocator usage fromsqlite3_status64()when availableunattributed_rss_bytesis the remaining RSS after subtracting:- JS-managed bytes
- tracked mapped-file bytes
- tracked SQLite runtime bytes
unattributed_anon_bytesis the remaining Linux anonymous RSS after subtracting:- JS-managed bytes
- tracked SQLite runtime bytes
These unattributed values are intentionally conservative approximations. They are useful as "what is still unexplained?" signals, not exact ownership maps.