Real-time CPU monitor. Track performance, temperature, and usage stats instantly.
Project description
cc.StatusQ-kit
Efficient monitoring and management of CPU status.
(https://github.com/Rick-torrellas/cc.StatusQ-kit/actions/workflows/main.yaml)
📖 Description
StatusQ is a modular, event-driven monitoring engine designed to decouple system data collection from the presentation layer. Built on a robust Event Bus (Pub-Sub) architecture, it allows you to observe system metrics (like CPU, Memory, or Network) through a platform-agnostic core.
Installation
pip install cc.statusq-kit
Usage
from cc_statusq_cpu.core import StatusqCPU, CPUEventBus
from cc_statusq_cpu.capsule import PsutilCPUProvider
from cc_statusq_kit.core.StatusQ import StatusQ
from cc_statusq_kit.core.SystemEventBus import SystemEventBus
from cc_statusq_kit.capsule.CPUAdapter import CPUAdapter
from cc_statusq_kit.capsule.ConsoleAdapter import ConsoleAdapter
# 1. Initialize the Global System Event Bus
global_bus = SystemEventBus()
cpu_provider = PsutilCPUProvider()
# 2. Initialize Sub-system components (Specific to CPU Library)
cpu_bus = CPUEventBus()
cpu_app = StatusqCPU(provider=cpu_provider,event_bus=cpu_bus)
# 3. Create the Orchestrator
orchestrator = StatusQ(event_bus=global_bus)
# 4. Initialize and Register Adapters
# The ConsoleAdapter listens for HealthReportEvents on the global bus
console = ConsoleAdapter(global_bus=global_bus)
# The CPUAdapter translates specific CPU events into global HealthReportEvents
cpu_monitor = CPUAdapter(cpu_app=cpu_app, cpu_bus=cpu_bus, global_bus=global_bus)
orchestrator.register_child(console)
orchestrator.register_child(cpu_monitor)
# --- EXECUTION MODES ---
# MODE A: Single Pulse (Manual check)
print("--- Executing Single Pulse ---")
orchestrator.pulse_all()
# MODE B: Continuous Telemetry Stream (Multi-threaded)
print("\n--- Starting Telemetry Stream (Press Ctrl+C to stop) ---")
try:
# Starts a background thread for each child to stream data every 2 seconds
orchestrator.telemetry_stream(interval=2.0)
except KeyboardInterrupt:
print("\nStopping orchestrator...")
📈 System Flow
- Registration: Adapters are added to the StatusQ child list.
- Trigger: When pulse_all() or telemetry_stream() is called, the orchestrator invokes the corresponding methods on the adapters.
- Translation: The CPUAdapter captures hardware data and publishes a HealthReportEvent to the SystemEventBus.
- Consumption: The ConsoleAdapter receives the event via the bus and displays the formatted metrics.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cc_statusq_kit-0.3.0.tar.gz.
File metadata
- Download URL: cc_statusq_kit-0.3.0.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e93b83a8e9e9da921a399a72c9f7f183c15d0614363b716f1912e741fee50349
|
|
| MD5 |
78bbf88be43eb0a7f320eb6d4f32de4c
|
|
| BLAKE2b-256 |
3caf364559851a054a4e7898f43f85f63bf7b3530751420657e6ef24fbd192d6
|
File details
Details for the file cc_statusq_kit-0.3.0-py3-none-any.whl.
File metadata
- Download URL: cc_statusq_kit-0.3.0-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
050e8518e3ca769885f1815b9ea8b4e6b04fb7c9f816360da48eca31d714e305
|
|
| MD5 |
e1f280efce728b4f2506ab35d5693947
|
|
| BLAKE2b-256 |
27e08c34204b5ab54f77ca6d5ba8ac0e518011c16880a7a1d779263949ae778a
|