feat(workforce): add ClickHouse workforce analytics contour
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
# Эксплуатационная проверка контура
|
||||
|
||||
Дата актуализации: 2026-06-23
|
||||
|
||||
Документ фиксирует минимальный профессиональный контур проверки после
|
||||
существенных изменений Rust-кода, сборщиков telemetry, ClickHouse workforce
|
||||
аналитики, gateway или Grafana dashboards.
|
||||
|
||||
## Rust / cargo gate
|
||||
|
||||
Выполнять из репозитория. `CARGO_TARGET_DIR` должен быть вне рабочей копии, чтобы
|
||||
не загрязнять diff.
|
||||
|
||||
```bash
|
||||
cd /mnt/usb_hdd2/Projects/ActivityWatch-Russian/adk-rust
|
||||
export CARGO_TARGET_DIR=/home/igor/.cache/detmir-adk-rust-target
|
||||
|
||||
cargo fmt --all --check
|
||||
cargo test --workspace --all-targets --locked
|
||||
cargo test --workspace --doc --locked
|
||||
cargo clippy --workspace --all-targets --locked -- -D warnings
|
||||
cargo audit --deny warnings
|
||||
```
|
||||
|
||||
Проверка политики зависимостей:
|
||||
|
||||
```bash
|
||||
cd /mnt/usb_hdd2/Projects/ActivityWatch-Russian
|
||||
cargo deny --manifest-path adk-rust/Cargo.toml check \
|
||||
--config deny.toml \
|
||||
--hide-inclusion-graph \
|
||||
--show-stats
|
||||
```
|
||||
|
||||
Windows/RDP collector дополнительно проверяется под целевой ABI:
|
||||
|
||||
```bash
|
||||
cd /mnt/usb_hdd2/Projects/ActivityWatch-Russian/adk-rust
|
||||
export CARGO_TARGET_DIR=/home/igor/.cache/detmir-adk-rust-target
|
||||
|
||||
cargo check --target x86_64-pc-windows-gnu -p aw-windows-telemetry --locked
|
||||
cargo clippy --target x86_64-pc-windows-gnu \
|
||||
-p aw-windows-telemetry \
|
||||
--all-targets \
|
||||
--locked \
|
||||
-- -D warnings
|
||||
```
|
||||
|
||||
Repository-specific gate:
|
||||
|
||||
```bash
|
||||
cd /mnt/usb_hdd2/Projects/ActivityWatch-Russian
|
||||
python3 scripts/public_secret_pattern_check.py
|
||||
|
||||
cd /mnt/usb_hdd2/Projects/ActivityWatch-Russian/adk-rust
|
||||
export CARGO_TARGET_DIR=/home/igor/.cache/detmir-adk-rust-target
|
||||
cargo run -p quality-gate -- --root /mnt/usb_hdd2/Projects/ActivityWatch-Russian
|
||||
```
|
||||
|
||||
## Browser smoke
|
||||
|
||||
Browser smoke не заменяет API/CLI проверки. Он подтверждает, что операторский
|
||||
контур реально открывается в браузере и dashboards рендерят панели.
|
||||
|
||||
Минимальный набор страниц:
|
||||
|
||||
- `http://10.10.10.13:5600/` - ActivityWatch WebUI.
|
||||
- `http://10.10.10.13:5610/reports/worktime/today` - дневной RDP отчет.
|
||||
- `http://10.10.10.13:5610/reports/worktime/management` - управленческий RDP
|
||||
отчет.
|
||||
- `http://10.10.10.2:8710/manager/brief` - 1C executive brief.
|
||||
- `http://10.10.10.2:8710/manager/actions` - очередь управленческих действий.
|
||||
- `http://10.10.10.2:8710/manager/recovery` - recovery brief.
|
||||
- `http://10.10.10.2:8710/manager/digest/weekly` - weekly digest.
|
||||
- `https://dm.iri1968.dpdns.org/` - gateway index через Basic Auth.
|
||||
- `https://dm.iri1968.dpdns.org/d/detmir-rdp-user-activity/detmir3a-rabota-pol-zovatelej-v-rdp?orgId=1&from=now-7d&to=now&timezone=browser&var-host=SHARKON2025&refresh=5m`
|
||||
- RDP user activity dashboard.
|
||||
- `https://dm.iri1968.dpdns.org/d/detmir-aw-main/detmir3a-activitywatch-overview?orgId=1&from=now-24h&to=now&timezone=browser&refresh=5m`
|
||||
- main ActivityWatch dashboard.
|
||||
|
||||
Правила:
|
||||
|
||||
- Basic Auth читать с `pve-detmir:/etc/detmir/proxmox-web-gateway.credentials`.
|
||||
Пароль нельзя печатать в логах, документации, commit messages или final report.
|
||||
- Скриншоты для диагностики хранить в `/tmp/aw-browser-smoke-*`; не коммитить.
|
||||
- Ошибки `404` по Grafana endpoint `/api/dashboards/uid/*/public-dashboards`
|
||||
не считаются отказом панели: это metadata public dashboard, не datasource.
|
||||
Пустые panels, 5xx, ошибки datasource или отсутствие данных в body/screenshot
|
||||
считаются регрессией.
|
||||
|
||||
## Production smoke
|
||||
|
||||
После deploy или изменения telemetry/workforce выполнить:
|
||||
|
||||
```bash
|
||||
cd /mnt/usb_hdd2/Projects/ActivityWatch-Russian
|
||||
NO_PROXY=localhost,127.0.0.1,10.10.10.13,10.10.10.2,192.168.100.18,10.10.10.0/24 \
|
||||
no_proxy=localhost,127.0.0.1,10.10.10.13,10.10.10.2,192.168.100.18,10.10.10.0/24 \
|
||||
./check-aw-full.sh
|
||||
```
|
||||
|
||||
Для workforce ClickHouse дополнительно проверить quality views:
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
(SELECT count() FROM aw_workforce.v_workforce_unknown_subjects) AS unknown_subjects,
|
||||
(SELECT count() FROM aw_workforce.v_workforce_unknown_processes) AS unknown_processes,
|
||||
(SELECT count() FROM aw_workforce.v_workforce_unknown_domains) AS unknown_domains,
|
||||
(SELECT countIf(user_login = 'unknown'
|
||||
OR (process_name = 'unknown' AND lengthUTF8(window_title) = 0))
|
||||
FROM aw_workforce.aw_window_events) AS no_user_window_rows;
|
||||
```
|
||||
|
||||
Ожидаемое состояние после cleanup/normalization: все четыре значения равны `0`.
|
||||
Reference in New Issue
Block a user