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

load_telemetry(path)

Read and validate every line before using a server sample.

validate_group_membership(group_id, rank, ...)

A declared group member has a rank in range(world_size).

Classes

ServerIdentity(host, pid, process_start_ns)

The process and accelerator that a collector actually observed.

TelemetrySample(run_id, identity, ...[, ...])

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: object

The 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: object

One 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
to_record()[source]
Return type:

dict[str, Any]

classmethod from_record(record)[source]
Parameters:

record (dict[str, Any])

Return type:

TelemetrySample

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]