Observation probes: процессы, CPU load и battery state #3

Open
opened 2026-06-15 13:23:06 +02:00 by yorunikakeru · 0 comments
Owner

Цель

Реализовать Linux-источники данных для всех leaf conditions текущего IR v2.

Scope

  • process_running: получать множество запущенных процессов из /proc, устойчиво переживать исчезновение PID между чтениями.
  • cpu_load: читать cumulative counters из /proc/stat и вычислять load fraction по разнице двух samples.
  • battery_below / battery_above: читать charge/capacity из /sys/class/power_supply, поддержать отсутствие батареи и несколько battery devices.
  • Ввести внутренний trait Probe, чтобы scheduler и тесты не зависели от реальной файловой системы.
  • Возвращать сырые наблюдаемые факты/метрики. Threshold evaluation и and/not остаются Planner.
  • Классифицировать ошибки: transient read/race, source unavailable, malformed kernel data.

Критерии приёмки

  • Для каждого source есть unit tests на fixtures.
  • /proc races не валят весь Watcher.
  • CPU calculation проверен на first-sample и zero-delta cases.
  • Поведение при desktop без battery документировано и протестировано.
  • Один scan source может обслужить несколько conditions; dedupe подключается scheduler issue #1.

Зависимости

  • После #2.
  • Контракт выходных данных согласовать с FrogOS/Planner#4.
## Цель Реализовать Linux-источники данных для всех leaf conditions текущего IR v2. ## Scope - `process_running`: получать множество запущенных процессов из `/proc`, устойчиво переживать исчезновение PID между чтениями. - `cpu_load`: читать cumulative counters из `/proc/stat` и вычислять load fraction по разнице двух samples. - `battery_below` / `battery_above`: читать charge/capacity из `/sys/class/power_supply`, поддержать отсутствие батареи и несколько battery devices. - Ввести внутренний trait `Probe`, чтобы scheduler и тесты не зависели от реальной файловой системы. - Возвращать сырые наблюдаемые факты/метрики. Threshold evaluation и `and`/`not` остаются Planner. - Классифицировать ошибки: transient read/race, source unavailable, malformed kernel data. ## Критерии приёмки - Для каждого source есть unit tests на fixtures. - `/proc` races не валят весь Watcher. - CPU calculation проверен на first-sample и zero-delta cases. - Поведение при desktop без battery документировано и протестировано. - Один scan source может обслужить несколько conditions; dedupe подключается scheduler issue #1. ## Зависимости - После #2. - Контракт выходных данных согласовать с FrogOS/Planner#4.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
FrogOS/Toad#3
No description provided.