stormlog.infer.telemetry
Engine-neutral, scoped samples from an inference host.
These records live in a separate JSONL artifact. A client request does not own device-wide memory merely because its time window overlaps a sample.
Functions
|
Read and validate every line before using a server sample. |
|
A declared group member has a rank in |
Classes
|
The process and accelerator that a collector actually observed. |
|
One counter with one owner and one observation scope. |
- stormlog.infer.telemetry.validate_group_membership(group_id, rank, world_size)[source]
A declared group member has a rank in
range(world_size).- Parameters:
group_id (str | None)
rank (int | None)
world_size (int | None)
- Return type:
None
- class stormlog.infer.telemetry.ServerIdentity(host, pid, process_start_ns, device_uuid=None, gpu_instance_id=None, replica_id=None, rank=None, boot_id=None, group_id=None, world_size=None)[source]
Bases:
objectThe process and accelerator that a collector actually observed.
- Parameters:
host (str)
pid (int)
process_start_ns (int)
device_uuid (str | None)
gpu_instance_id (str | None)
replica_id (str | None)
rank (int | None)
boot_id (str | None)
group_id (str | None)
world_size (int | None)
- host: str
- pid: int
- process_start_ns: int
- device_uuid: str | None = None
- gpu_instance_id: str | None = None
- replica_id: str | None = None
- rank: int | None = None
- boot_id: str | None = None
- group_id: str | None = None
- world_size: int | None = None
- property clock_domain: str
The wall clock of this host boot; see
wall_clock_domain.
- class stormlog.infer.telemetry.TelemetrySample(run_id, identity, observed_at_ns, metric, value_bytes, state, source, interval_ms, detail=None, provenance='observed')[source]
Bases:
objectOne counter with one owner and one observation scope.
- Parameters:
run_id (str)
identity (ServerIdentity)
observed_at_ns (int)
metric (str)
value_bytes (int | None)
state (str)
source (str)
interval_ms (int)
detail (str | None)
provenance (str)
- run_id: str
- identity: ServerIdentity
- observed_at_ns: int
- metric: str
- value_bytes: int | None
- state: str
- source: str
- interval_ms: int
- detail: str | None = None
- provenance: str = 'observed'
- property scope: str
- property counter_owner: str
- stormlog.infer.telemetry.load_telemetry(path)[source]
Read and validate every line before using a server sample.
- Parameters:
path (str | Path)
- Return type:
list[TelemetrySample]