mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-02-18 23:41:48 +01:00
BREAKING CHANGE: AI Patrol now uses EXACT alert thresholds by default instead of warning 5-15% before the threshold. Changes: - Default behavior: Patrol warns at your configured threshold (e.g., 96% = warns at 96%) - New setting: 'use_proactive_thresholds' enables the old early-warning behavior - API: Added use_proactive_thresholds to GET/PUT /api/settings/ai - Backend: Added SetProactiveMode/GetProactiveMode to PatrolService - Backend: Added GetThresholds to PatrolService for UI display - Tests: Updated and added tests for both exact and proactive modes - Also fixed unused imports in dockeragent/agent.go When proactive mode is disabled (default): - Watch: threshold - 5% (slight buffer) - Warning: exact threshold When proactive mode is enabled: - Watch: threshold - 15% - Warning: threshold - 5% Related to #951
37 lines
593 B
Go
37 lines
593 B
Go
package dockeragent
|
|
|
|
import (
|
|
"bufio"
|
|
"errors"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func readProcUptime() (float64, error) {
|
|
f, err := openProcUptime()
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
defer f.Close()
|
|
|
|
scanner := bufio.NewScanner(f)
|
|
if !scanner.Scan() {
|
|
if err := scanner.Err(); err != nil {
|
|
return 0, err
|
|
}
|
|
return 0, errors.New("empty /proc/uptime")
|
|
}
|
|
|
|
fields := strings.Fields(scanner.Text())
|
|
if len(fields) == 0 {
|
|
return 0, errors.New("invalid /proc/uptime contents")
|
|
}
|
|
|
|
value, err := strconv.ParseFloat(fields[0], 64)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
|
|
return value, nil
|
|
}
|