add repair functionality
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -625,12 +625,12 @@ func (c *CronTask) insertDailyAggregates(ctx context.Context, table string, agg
|
||||
defer tx.Rollback()
|
||||
|
||||
driver := strings.ToLower(dbConn.DriverName())
|
||||
placeholders := makePlaceholders(driver, 29)
|
||||
placeholders := makePlaceholders(driver, 30)
|
||||
insert := fmt.Sprintf(`
|
||||
INSERT INTO %s (
|
||||
"Name","Vcenter","VmId","VmUuid","ResourcePool","Datacenter","Cluster","Folder",
|
||||
"ProvisionedDisk","VcpuCount","RamGB","IsTemplate","PoweredOn","SrmPlaceholder",
|
||||
"CreationTime","DeletionTime","SamplesPresent","AvgVcpuCount","AvgRamGB","AvgProvisionedDisk",
|
||||
"CreationTime","DeletionTime","SnapshotTime","SamplesPresent","AvgVcpuCount","AvgRamGB","AvgProvisionedDisk",
|
||||
"AvgIsPresent","PoolTinPct","PoolBronzePct","PoolSilverPct","PoolGoldPct","Tin","Bronze","Silver","Gold"
|
||||
) VALUES (%s)
|
||||
`, table, placeholders)
|
||||
@@ -674,6 +674,7 @@ INSERT INTO %s (
|
||||
v.srmPlaceholder,
|
||||
v.creation,
|
||||
v.deletion,
|
||||
v.lastSeen,
|
||||
v.samples,
|
||||
avgVcpu,
|
||||
avgRam,
|
||||
|
||||
@@ -478,7 +478,7 @@ var monthlyUnionColumns = []string{
|
||||
`"SrmPlaceholder"`, `"VmUuid"`,
|
||||
`"SamplesPresent"`, `"AvgVcpuCount"`, `"AvgRamGB"`, `"AvgProvisionedDisk"`, `"AvgIsPresent"`,
|
||||
`"PoolTinPct"`, `"PoolBronzePct"`, `"PoolSilverPct"`, `"PoolGoldPct"`,
|
||||
`"Tin"`, `"Bronze"`, `"Silver"`, `"Gold"`,
|
||||
`"Tin"`, `"Bronze"`, `"Silver"`, `"Gold"`, `"SnapshotTime"`,
|
||||
}
|
||||
|
||||
func ensureSnapshotRowID(ctx context.Context, dbConn *sqlx.DB, tableName string) error {
|
||||
|
||||
@@ -189,13 +189,8 @@ func (c *CronTask) aggregateMonthlySummaryGo(ctx context.Context, monthStart, mo
|
||||
return err
|
||||
}
|
||||
|
||||
// Refine creation/deletion using SQL helper (requires SnapshotTime in union).
|
||||
if strings.Contains(unionQuery, `"SnapshotTime"`) {
|
||||
if err := db.RefineCreationDeletionFromUnion(ctx, dbConn, summaryTable, unionQuery); err != nil {
|
||||
c.Logger.Warn("failed to refine creation/deletion times (monthly Go)", "error", err, "table", summaryTable)
|
||||
}
|
||||
} else {
|
||||
c.Logger.Debug("Skipping lifecycle refinement for monthly aggregation (no SnapshotTime in union)")
|
||||
if err := db.RefineCreationDeletionFromUnion(ctx, dbConn, summaryTable, unionQuery); err != nil {
|
||||
c.Logger.Warn("failed to refine creation/deletion times (monthly Go)", "error", err, "table", summaryTable)
|
||||
}
|
||||
|
||||
// Backfill missing creation times to the start of the month for rows lacking creation info.
|
||||
|
||||
Reference in New Issue
Block a user