64 lines
3.5 KiB
Markdown
64 lines
3.5 KiB
Markdown
# Источники ActivityWatch для workforce ingest: SHARKON2025
|
||
|
||
Дата проверки: `2026-06-23`
|
||
|
||
AW API: `http://10.10.10.13:5600/api/0`
|
||
|
||
Хост: `SHARKON2025`
|
||
|
||
## Итоговое решение P1
|
||
|
||
Основные источники для `aw_workforce`:
|
||
|
||
| Поток | Bucket | Решение | Поля |
|
||
|---|---|---|---|
|
||
| Desktop/window facts | `aw-watcher-window_SHARKON2025` | Загружать в `aw_window_events` | `app`, `hostname`, `processId`, `sessionId`, `source`, `title`, `username` |
|
||
| Browser facts, Edge | `aw-watcher-web-edge_SHARKON2025` | Загружать в `aw_browser_events` | `app`, `browser`, `hostname`, `sessionId`, `source`, `title`, `url`, `username` |
|
||
| Browser facts, Chrome | `aw-watcher-web-chrome_SHARKON2025` | Загружать как исторический browser source; если `username` отсутствует, писать `unknown` | `app`, `browser`, `sessionId`, `source`, `title`, `url` |
|
||
|
||
Не использовать как основной fact-source продуктивности:
|
||
|
||
| Bucket | Причина |
|
||
|---|---|
|
||
| `aw-rdp-window_SHARKON2025` | Есть активное окно RDP bridge, но нет `username` в событии; не годится для точной per-user привязки. |
|
||
| `aw-detmir-web-category_SHARKON2025` | Это health/category signal с `signalType=collector_health` и нулевой длительностью; полезен для диагностики collector/user presence, но не для длительности продуктивности. |
|
||
| `aw-worktime-sessions_SHARKON2025` | Авторитетный источник сессий и пользователей RDP, но это presence/session facts, а не window/browser usage facts. |
|
||
|
||
## Подтвержденные факты
|
||
|
||
`aw-watcher-window_SHARKON2025`:
|
||
|
||
- type: `currentwindow`;
|
||
- client: `aw-watcher-window`;
|
||
- hostname: `SHARKON2025`;
|
||
- за последние 24 часа есть события с пользователями `USER1`, `USER4`, `USER5`, `Администратор`;
|
||
- `USER1` подтвержден в этом bucket и будет нормализован loader-ом в `user1`.
|
||
|
||
`aw-watcher-web-edge_SHARKON2025`:
|
||
|
||
- type: `web.tab.current`;
|
||
- client: `aw-watcher-web-edge`;
|
||
- hostname: `SHARKON2025`;
|
||
- события за последние 30 дней содержат `username`;
|
||
- на момент проверки событий за последние 24 часа не было, поэтому источник включается как основной browser source, но freshness контролируется отдельно.
|
||
|
||
`aw-watcher-web-chrome_SHARKON2025`:
|
||
|
||
- type: `web.tab.current`;
|
||
- client: `aw-watcher-web-chrome`;
|
||
- hostname: `SHARKON2025`;
|
||
- последние найденные события исторические и не содержат `username`;
|
||
- loader загружает их с `user_login='unknown'`, пока нет надежной session correlation.
|
||
|
||
## Первая привязка P3
|
||
|
||
Файл загрузки: `clickhouse-workforce/sample/seed_sharkon2025_p3.sql`.
|
||
|
||
| host_name | user_domain | user_login | department | branch |
|
||
|---|---|---|---|---|
|
||
| `SHARKON2025` | `sharkon2025` | `user1` | `tsj` | `tsj` |
|
||
|
||
Ключ словаря остается `(host_name, user_login)`. Домен хранится как атрибут
|
||
`user_domain`, потому что текущие raw-события ActivityWatch дают `username`, а не
|
||
стабильный `DOMAIN\user` в window/browser facts.
|