update aggregation logic
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2026-01-16 08:32:12 +11:00
parent f0bacab729
commit 268919219e
3 changed files with 10 additions and 10 deletions

View File

@@ -4,6 +4,7 @@ import (
"context" "context"
"database/sql" "database/sql"
"fmt" "fmt"
"log/slog"
"strings" "strings"
"time" "time"
@@ -338,13 +339,18 @@ func ApplySQLiteTuning(ctx context.Context, dbConn *sqlx.DB) {
return return
} }
// Best-effort pragmas; ignore errors to stay safe in constrained environments. // Best-effort pragmas; ignore errors to stay safe in constrained environments.
var err error
pragmas := []string{ pragmas := []string{
`PRAGMA journal_mode=WAL;`, `PRAGMA journal_mode=WAL;`,
`PRAGMA synchronous=NORMAL;`, `PRAGMA synchronous=NORMAL;`,
`PRAGMA temp_store=MEMORY;`, `PRAGMA temp_store=MEMORY;`,
`PRAGMA optimize;`,
} }
for _, pragma := range pragmas { for _, pragma := range pragmas {
_, _ = dbConn.ExecContext(ctx, pragma) _, err = dbConn.ExecContext(ctx, pragma)
if logger, ok := ctx.Value("logger").(*slog.Logger); ok && logger != nil {
logger.Debug("Applied SQLite tuning pragma", "pragma", pragma, "error", err)
}
} }
} }

View File

@@ -19,7 +19,8 @@ func (c *CronTask) RunVcenterDailyAggregate(ctx context.Context, logger *slog.Lo
logger.Info("Daily summary job finished", "duration", time.Since(startedAt)) logger.Info("Daily summary job finished", "duration", time.Since(startedAt))
}() }()
targetTime := time.Now().Add(-time.Minute) targetTime := time.Now().Add(-time.Minute)
return c.aggregateDailySummary(jobCtx, targetTime, false) // Always force regeneration on the scheduled run to refresh data even if a manual run happened earlier.
return c.aggregateDailySummary(jobCtx, targetTime, true)
}) })
} }

View File

@@ -872,9 +872,7 @@ func (c *CronTask) captureHourlySnapshotForVcenter(ctx context.Context, startTim
presentByName := make(map[string]struct{}, len(vcVms)) presentByName := make(map[string]struct{}, len(vcVms))
totals := snapshotTotals{} totals := snapshotTotals{}
deletionsMarked := false deletionsMarked := false
progressEvery := 25 for _, vm := range vcVms {
nextLog := progressEvery
for idx, vm := range vcVms {
if strings.HasPrefix(vm.Name, "vCLS-") { if strings.HasPrefix(vm.Name, "vCLS-") {
continue continue
} }
@@ -906,11 +904,6 @@ func (c *CronTask) captureHourlySnapshotForVcenter(ctx context.Context, startTim
totals.VcpuTotal += nullInt64ToInt(row.VcpuCount) totals.VcpuTotal += nullInt64ToInt(row.VcpuCount)
totals.RamTotal += nullInt64ToInt(row.RamGB) totals.RamTotal += nullInt64ToInt(row.RamGB)
totals.DiskTotal += nullFloat64ToFloat(row.ProvisionedDisk) totals.DiskTotal += nullFloat64ToFloat(row.ProvisionedDisk)
if idx+1 >= nextLog {
c.Logger.Debug("hourly snapshot progress", "processed", idx+1, "total", len(vcVms), "vcenter", url)
nextLog += progressEvery
}
} }
c.Logger.Debug("hourly snapshot rows prepared", "vcenter", url, "rows", len(presentSnapshots)) c.Logger.Debug("hourly snapshot rows prepared", "vcenter", url, "rows", len(presentSnapshots))