From 9949a56f3b831b1b37633c6343ec5a4bcf000146 Mon Sep 17 00:00:00 2001 From: Stephanie Hingtgen Date: Tue, 28 Jan 2025 02:08:48 -0700 Subject: [PATCH] K8s: Fix legacy stats (#99623) --- pkg/storage/unified/federated/stats.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/pkg/storage/unified/federated/stats.go b/pkg/storage/unified/federated/stats.go index 98440932ace..a126bcb30fb 100644 --- a/pkg/storage/unified/federated/stats.go +++ b/pkg/storage/unified/federated/stats.go @@ -31,7 +31,17 @@ func (s *LegacyStatsGetter) GetStats(ctx context.Context, in *resource.ResourceS rsp := &resource.ResourceStatsResponse{} err = helper.DB.WithDbSession(ctx, func(sess *sqlstore.DBSession) error { - fn := func(table, where, g, r string) error { + fn := func(table, where, g, r string, existCheck bool) error { + // if existCheck is true, do not error out if the table does not exist + if existCheck { + exists, err := sess.IsTableExist(helper.Table(table)) + if !exists { + return nil + } else if err != nil { + return err + } + } + count, err := sess.Table(helper.Table(table)).Where(where, info.OrgID, in.Folder).Count() if err != nil { return err @@ -47,25 +57,25 @@ func (s *LegacyStatsGetter) GetStats(ctx context.Context, in *resource.ResourceS group := "sql-fallback" // Legacy alert rule table - err = fn("alert_rule", "org_id=? AND dashboard_uid=?", group, "alertrules") + err = fn("alert_rule", "org_id=? AND dashboard_uid=?", group, "alertrules", false) if err != nil { return err } // Legacy dashboard table - err = fn("dashboard", "org_id=? AND folder_uid=?", group, "dashboards") + err = fn("dashboard", "org_id=? AND folder_uid=?", group, "dashboards", true) if err != nil { return err } // Legacy folder table - err = fn("folder", "org_id=? AND parent_uid=?", group, "folders") + err = fn("folder", "org_id=? AND parent_uid=?", group, "folders", true) if err != nil { return err } // Legacy library_elements table - err = fn("library_element", "org_id=? AND folder_uid=?", group, "library_elements") + err = fn("library_element", "org_id=? AND folder_uid=?", group, "library_elements", false) if err != nil { return err }