stormlog.telemetry_sink
Append-only telemetry sink with rollover and retention bounds.
Functions
Read a sink manifest from a sink directory, manifest file, or segment file. |
|
Resolve a file or directory path to a sink manifest path, if present. |
|
Resolve append-only sink inputs to ordered JSONL segment paths. |
Classes
|
Write telemetry records to newline-delimited JSON segments. |
|
Runtime policy for append-only telemetry persistence. |
|
Parsed append-only sink manifest with session ledger and segments. |
|
One JSONL segment tracked by the append-only sink manifest. |
- class stormlog.telemetry_sink.AppendOnlyTelemetrySink(config)[source]
Bases:
objectWrite telemetry records to newline-delimited JSON segments.
- Parameters:
config (TelemetrySinkConfig)
- start_session(summary=None)[source]
Register the active session for subsequent records.
- Parameters:
summary (SessionSummary | None)
- Return type:
- current_session()[source]
Return the active session summary, if any.
- Return type:
SessionSummary | None
- class stormlog.telemetry_sink.TelemetrySinkConfig(root_dir, flush_every_events=50, flush_every_seconds=2.0, rollover_max_bytes=67108864, rollover_max_events=10000, retention_max_files=8, retention_max_total_bytes=536870912)[source]
Bases:
objectRuntime policy for append-only telemetry persistence.
- Parameters:
root_dir (Path)
flush_every_events (int)
flush_every_seconds (float)
rollover_max_bytes (int)
rollover_max_events (int)
retention_max_files (int)
retention_max_total_bytes (int)
- root_dir: Path
- flush_every_events: int = 50
- flush_every_seconds: float = 2.0
- rollover_max_bytes: int = 67108864
- rollover_max_events: int = 10000
- retention_max_files: int = 8
- retention_max_total_bytes: int = 536870912
- class stormlog.telemetry_sink.TelemetrySinkManifest(schema_version, format, sessions=<factory>, segments=<factory>)[source]
Bases:
objectParsed append-only sink manifest with session ledger and segments.
- Parameters:
schema_version (int)
format (str)
sessions (list[SessionSummary])
segments (list[TelemetrySinkSegment])
- schema_version: int
- format: str
- sessions: list[SessionSummary]
- segments: list[TelemetrySinkSegment]
- class stormlog.telemetry_sink.TelemetrySinkSegment(filename, event_count, size_bytes, closed, session_id=None)[source]
Bases:
objectOne JSONL segment tracked by the append-only sink manifest.
- Parameters:
filename (str)
event_count (int)
size_bytes (int)
closed (bool)
session_id (str | None)
- filename: str
- event_count: int
- size_bytes: int
- closed: bool
- session_id: str | None = None
- stormlog.telemetry_sink.read_telemetry_sink_manifest(path)[source]
Read a sink manifest from a sink directory, manifest file, or segment file.
- Parameters:
path (str | Path)
- Return type:
TelemetrySinkManifest | None