From 471cc6e4e99fa4e97528fccb8d8928135ff1e3bb Mon Sep 17 00:00:00 2001 From: hamistao Date: Mon, 21 Oct 2024 11:34:11 -0300 Subject: [PATCH] lxd/api_metrics: Filter Warnings/Operation queries by node Signed-off-by: hamistao --- lxd/api_metrics.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lxd/api_metrics.go b/lxd/api_metrics.go index 863220a487d6..592f622ebd93 100644 --- a/lxd/api_metrics.go +++ b/lxd/api_metrics.go @@ -129,7 +129,7 @@ func metricsGet(d *Daemon, r *http.Request) response.Response { } // Register internal metrics. - intMetrics = internalMetrics(ctx, s.StartTime, tx) + intMetrics = internalMetrics(ctx, s.ServerName, s.StartTime, tx) return nil }) if err != nil { @@ -378,10 +378,11 @@ func getFilteredMetrics(s *state.State, r *http.Request, compress bool, metricSe return response.SyncResponsePlain(true, compress, metricSet.String()) } -func internalMetrics(ctx context.Context, daemonStartTime time.Time, tx *db.ClusterTx) *metrics.MetricSet { +func internalMetrics(ctx context.Context, nodeName string, daemonStartTime time.Time, tx *db.ClusterTx) *metrics.MetricSet { out := metrics.NewMetricSet(nil) + var warnings []dbCluster.Warning - warnings, err := dbCluster.GetWarnings(ctx, tx.Tx()) + warnings, err := dbCluster.GetWarnings(ctx, tx.Tx(), dbCluster.WarningFilter{Node: &nodeName}) if err != nil { logger.Warn("Failed to get warnings", logger.Ctx{"err": err}) } else { @@ -389,7 +390,9 @@ func internalMetrics(ctx context.Context, daemonStartTime time.Time, tx *db.Clus out.AddSamples(metrics.WarningsTotal, metrics.Sample{Value: float64(len(warnings))}) } - operations, err := dbCluster.GetOperations(ctx, tx.Tx()) + // Create local variable to get a pointer. + nodeID := tx.GetNodeID() + operations, err := dbCluster.GetOperations(ctx, tx.Tx(), dbCluster.OperationFilter{NodeID: &nodeID}) if err != nil { logger.Warn("Failed to get operations", logger.Ctx{"err": err}) } else {