fix: Complete AgentHealth improvements and build fixes
- Update Update scanner default from 15min to 12 hours (backend) - Add 1 week and 2 week frequency options (frontend) - Rename AgentScanners to AgentHealth component - Add OS-aware package manager badges (APT, DNF, Windows/Winget, Docker) - Fix all build errors (types, imports, storage metrics) - Add useMemo optimization for enabled/auto-run counts
This commit is contained in:
@@ -4,7 +4,6 @@ import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/Fimeg/RedFlag/aggregator-server/internal/models"
|
||||
"github.com/google/uuid"
|
||||
@@ -136,7 +135,7 @@ func (q *StorageMetricsQueries) GetLatestStorageMetrics(ctx context.Context, age
|
||||
// GetStorageMetricsSummary returns summary statistics for an agent
|
||||
func (q *StorageMetricsQueries) GetStorageMetricsSummary(ctx context.Context, agentID uuid.UUID) (map[string]interface{}, error) {
|
||||
query := `
|
||||
SELECT
|
||||
SELECT
|
||||
COUNT(*) as total_disks,
|
||||
COUNT(CASE WHEN severity = 'critical' THEN 1 END) as critical_disks,
|
||||
COUNT(CASE WHEN severity = 'important' THEN 1 END) as important_disks,
|
||||
@@ -149,19 +148,38 @@ func (q *StorageMetricsQueries) GetStorageMetricsSummary(ctx context.Context, ag
|
||||
AND created_at >= NOW() - INTERVAL '24 hours'
|
||||
`
|
||||
|
||||
var summary map[string]interface{}
|
||||
var (
|
||||
totalDisks int
|
||||
criticalDisks int
|
||||
importantDisks int
|
||||
avgUsedPercent sql.NullFloat64
|
||||
maxUsedPercent sql.NullFloat64
|
||||
firstCollectedAt sql.NullTime
|
||||
lastCollectedAt sql.NullTime
|
||||
)
|
||||
|
||||
err := q.db.QueryRowContext(ctx, query, agentID).Scan(
|
||||
&summary["total_disks"],
|
||||
&summary["critical_disks"],
|
||||
&summary["important_disks"],
|
||||
&summary["avg_used_percent"],
|
||||
&summary["max_used_percent"],
|
||||
&summary["first_collected_at"],
|
||||
&summary["last_collected_at"],
|
||||
&totalDisks,
|
||||
&criticalDisks,
|
||||
&importantDisks,
|
||||
&avgUsedPercent,
|
||||
&maxUsedPercent,
|
||||
&firstCollectedAt,
|
||||
&lastCollectedAt,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to get storage metrics summary: %w", err)
|
||||
}
|
||||
|
||||
summary := map[string]interface{}{
|
||||
"total_disks": totalDisks,
|
||||
"critical_disks": criticalDisks,
|
||||
"important_disks": importantDisks,
|
||||
"avg_used_percent": avgUsedPercent.Float64,
|
||||
"max_used_percent": maxUsedPercent.Float64,
|
||||
"first_collected_at": firstCollectedAt.Time,
|
||||
"last_collected_at": lastCollectedAt.Time,
|
||||
}
|
||||
|
||||
return summary, nil
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user