Updated documentation
This commit is contained in:
parent
245e546f18
commit
7bb5c1cf84
47
CLAUDE.md
47
CLAUDE.md
@ -6,6 +6,53 @@ A high-performance Rust-based TUI dashboard for monitoring CMTEC infrastructure.
|
|||||||
|
|
||||||
## Implementation Strategy
|
## Implementation Strategy
|
||||||
|
|
||||||
|
### Next Phase: Systemd Collector Optimization (Based on TODO.md)
|
||||||
|
|
||||||
|
**Current Status**: Reverted to working baseline (commit 245e546) after optimization broke service discovery.
|
||||||
|
|
||||||
|
**Planned Implementation Steps** (step-by-step to avoid breaking functionality):
|
||||||
|
|
||||||
|
**Phase 1: Exact Name Filtering**
|
||||||
|
- Replace `contains()` matching with exact name matching for service filters
|
||||||
|
- Change `service_name.contains(pattern) || pattern.contains(service_name)` to `service_name == pattern`
|
||||||
|
- Test: Ensure cmbox remains visible with exact service names in config
|
||||||
|
- Commit and test after each change
|
||||||
|
|
||||||
|
**Phase 2: Remove User Service Collection**
|
||||||
|
- Remove all `sudo -u` systemctl commands for user services
|
||||||
|
- Remove user_unit_files_output and user_units_output logic
|
||||||
|
- Keep only system service discovery via `systemctl list-units --type=service`
|
||||||
|
- Test: Verify system services still discovered correctly
|
||||||
|
|
||||||
|
**Phase 3: Add Wildcard Support**
|
||||||
|
- Implement glob pattern matching for service filters
|
||||||
|
- Support patterns like "nginx*" to match "nginx", "nginx-config-reload", etc.
|
||||||
|
- Use fnmatch or similar for wildcard expansion
|
||||||
|
- Test: Verify patterns work as expected
|
||||||
|
|
||||||
|
**Phase 4: Optimize systemctl Calls**
|
||||||
|
- Cache service status information during discovery
|
||||||
|
- Eliminate redundant `systemctl is-active` and `systemctl show` calls per service
|
||||||
|
- Parse status from `systemctl list-units` output directly
|
||||||
|
- Test: Ensure performance improvement without functionality loss
|
||||||
|
|
||||||
|
**Phase 5: Include-Only Discovery**
|
||||||
|
- Remove auto-discovery of all services
|
||||||
|
- Only check services explicitly listed in service_name_filters
|
||||||
|
- Skip systemctl discovery entirely, use configured list directly
|
||||||
|
- Test: Verify only configured services are monitored
|
||||||
|
|
||||||
|
**Critical Requirements:**
|
||||||
|
- Each phase must be tested independently
|
||||||
|
- cmbox must remain visible in dashboard after each change
|
||||||
|
- No functionality regressions allowed
|
||||||
|
- Commit each phase separately with descriptive messages
|
||||||
|
|
||||||
|
**Rollback Strategy:**
|
||||||
|
- If any phase breaks functionality, immediately revert that specific commit
|
||||||
|
- Do not attempt to "fix forward" - revert and redesign the problematic step
|
||||||
|
- Each phase should be atomic and independently revertible
|
||||||
|
|
||||||
## Core Architecture Principles - CRITICAL
|
## Core Architecture Principles - CRITICAL
|
||||||
|
|
||||||
### Individual Metrics Philosophy
|
### Individual Metrics Philosophy
|
||||||
|
|||||||
11
TODO.md
11
TODO.md
@ -1,8 +1,17 @@
|
|||||||
# TODO
|
# TODO
|
||||||
|
|
||||||
## Show logged in users (agent/dashboard)
|
## Systemd filtering (agent)
|
||||||
|
|
||||||
|
- remove user systemd collection
|
||||||
|
- reduce number of systemctl call
|
||||||
|
- Cahnge so only services in include list are detected
|
||||||
|
- Filter on exact name
|
||||||
|
- Add support for "\*" in filtering
|
||||||
|
|
||||||
|
## System panel (agent/dashboard)
|
||||||
|
|
||||||
- Add support to show login users
|
- Add support to show login users
|
||||||
|
- Add support to show timestamp/version for latest nixos rebuild
|
||||||
|
|
||||||
## Keyboard navigation and scrolling (dashboard)
|
## Keyboard navigation and scrolling (dashboard)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user