Разработано группой Безопасные Каннели

emptystat

Наблюдаемость отсутствия для Linux-систем.

Лёгкая CLI-утилита для анализа пустых файлов, тихих логов, незаполненных директорий и терминального вакуума. Пустота тоже заслуживает метрик.

version 0.1.3MIT OR Apache-2.0Linux supportedx86_64 · aarch64
0.137Demo Void Index
6absence metrics
0required daemons
emptystat scan
$ emptystat scan /var/log

Directory: /var/log
Total objects: 384
Empty files: 19
Empty directories: 4
Whitespace-only files: 3
Void Index: 0.084
Status: nominal
Recommendation: Continue observing absence.

Для низкошумных операционных сред

emptystat делает отсутствие измеримым в shell-скриптах, CI-пайплайнах, systemd timers и диагностике логов.

Filesystem emptiness

Находит пустые файлы, пустые директории и placeholder-объекты.

Log silence profiling

Измеряет периоды, когда лог-файлы не изменяются.

Terminal vacancy

Показывает, какая часть терминального пространства не используется.

JSON output

Поддерживает машинно-читаемый вывод для CI и скриптов.

Prometheus-style export

Позволяет экспортировать метрики отсутствия.

Stable exit codes

Удобен для cron, systemd timers и shell-автоматизации.

Установка

Installation

emptystat можно собрать из исходного кода или скачать готовый бинарник из GitHub Releases.

From source

git clone https://github.com/m1tm4n404/emptystat.git
cd emptystat
cargo build --release
sudo cp target/release/emptystat /usr/local/bin/

Using prebuilt binary

curl -LO https://github.com/m1tm4n404/emptystat/releases/download/v0.1.3/emptystat-x86_64-linux.tar.gz
tar -xzf emptystat-x86_64-linux.tar.gz
sudo install -m 0755 emptystat /usr/local/bin/emptystat

Verify installation

emptystat --version

emptystat 0.1.3

Build requirements

  • Linux kernel 5.4+
  • Rust 1.74+
  • glibc 2.31+
  • x86_64 or aarch64

Uninstall

sudo rm /usr/local/bin/emptystat
rm -rf ~/.config/emptystat

Примеры

Examples

Практические сценарии для наблюдения пустоты в файловых системах, логах, терминалах и CI.

01 Analysis of current directory

emptystat scan .
Path: .
Total objects: 812
Empty files: 44
Empty directories: 13
Whitespace-only files: 5
Placeholder files: 8
Void Index: 0.118
Absence Entropy: 0.37
Status: noticeable
Recommendation: Continue monitoring absence.

02 Analysis of /var/log

sudo emptystat scan /var/log
Directory: /var/log
Total objects: 384
Empty files: 19
Silent logs: 42.8%
Void pressure: nominal
Recommendation: Silence is within acceptable operational limits.

03 JSON output

emptystat scan ~/projects --json
{
  "path": "/home/user/projects",
  "total_objects": 1284,
  "empty_files": 91,
  "empty_directories": 12,
  "placeholder_files": 17,
  "void_index": 0.142,
  "absence_entropy": 0.51,
  "status": "noticeable"
}

04 Log silence observation

emptystat silence /var/log/syslog --window 60
Watching /var/log/syslog for 60 seconds...
Silence detected: 47.2s
Noise bursts: 3
Silence Ratio: 0.786
Log calmness: stable
Suspicious quietness: false

05 Terminal vacuum

emptystat tty
Terminal size: 120x32
Occupied rows: 8
Unused visual field: 75.00%
Prompt loneliness: moderate
Cursor existential drift: 2 columns

06 CI usage

emptystat scan . --threshold 0.4 --json > emptystat-report.json

Если Void Index превышает заданный порог, emptystat завершится с exit code 1. Это позволяет использовать утилиту в пайплайнах качества пустоты.

Метрики

Metrics

emptystat представляет отсутствие активности как нормализованные сигналы, удобные для скриптов.

Void Index

Основная нормализованная метрика структурной пустоты.

void_index = weighted_empty_objects / total_objects

Absence Entropy

Оценивает равномерность распределения пустоты по дереву файлов.

H(absence) = -Σ p(empty_region) log p(empty_region)

Silence Ratio

Доля времени, в течение которого наблюдаемый файл не изменялся.

silence_ratio = silent_seconds / observation_window

Placeholder Gravity

Влияние файлов .keep, .empty, .placeholder, TODO и stub-файлов.

gravity = placeholder_weight × local_void_density

Terminal Vacancy

Процент незанятой площади терминального окна.

vacancy = unused_cells / terminal_cells

Whitespace Density

Доля строк, состоящих только из пробельных символов.

density = whitespace_only_lines / total_lines

Документация

Documentation

Справочник команд и эксплуатационные заметки для наблюдаемости отсутствия.

Command Reference

emptystat scan <PATH>
emptystat ratio <PATH>
emptystat silence <FILE>
emptystat tty
emptystat report
emptystat explain <METRIC>

Options

--json
--quiet
--verbose
--threshold <VALUE>
--format text|json|markdown|prometheus
--no-color
--max-depth <N>
--ignore-hidden

Exit Codes

CodeMeaning
0Absence within configured limits.
1Void Index exceeded threshold.
2Input path or file was inaccessible.
64Usage or configuration error.

systemd Integration

[Timer]
OnCalendar=hourly

[Service]
ExecStart=/usr/local/bin/emptystat scan /var/log --format prometheus

FAQ

Частые вопросы

Серьёзные ответы для нагрузок наблюдения отсутствия.

No. Some emptiness is expected and often operationally healthy.
No. emptystat observes absence. It does not optimize presence.
Your terminal is probably larger than the amount of information currently displayed.
emptystat is considered stable for non-critical absence observation workloads.
emptystat сопровождается группой Безопасные Каннели.

История изменений

Changelog

Документированные изменения поверхности наблюдаемого отсутствия.

0.1.3 — Stable Nothingness

  • Added --no-color flag
  • Improved whitespace-only file detection
  • Reduced false positives in placeholder gravity calculation
  • Fixed JSON output for empty directories

0.1.2 — Reduced Presence

  • Added terminal vacancy reporting
  • Added log silence observation
  • Improved inaccessible path diagnostics

0.1.1 — Quieter Output

  • Added Markdown reports
  • Added initial man page
  • Improved scan summary formatting