From 43f3704f6f0572ab2efd273929707415adefb1e9 Mon Sep 17 00:00:00 2001 From: Mikhail Nozdrachev Date: Thu, 15 Aug 2024 14:55:58 +0200 Subject: [PATCH] Revert "Receive: fix stats (#7373)" This reverts commit 66841fbb1e758bdcf06bf6a2771f5a09ba951c55. --- pkg/receive/handler.go | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/pkg/receive/handler.go b/pkg/receive/handler.go index df61aeb3a9e..20a0e8fdc15 100644 --- a/pkg/receive/handler.go +++ b/pkg/receive/handler.go @@ -681,32 +681,35 @@ type remoteWriteParams struct { alreadyReplicated bool } -func (h *Handler) gatherWriteStats(localWrites map[endpointReplica]map[string]trackedSeries) tenantRequestStats { +func (h *Handler) gatherWriteStats(writes ...map[endpointReplica]map[string]trackedSeries) tenantRequestStats { var stats tenantRequestStats = make(tenantRequestStats) - for er := range localWrites { - for tenant, series := range localWrites[er] { - samples := 0 + for _, write := range writes { + for er := range write { + for tenant, series := range write[er] { + samples := 0 - for _, ts := range series.timeSeries { - samples += len(ts.Samples) - } + for _, ts := range series.timeSeries { + samples += len(ts.Samples) + } - if st, ok := stats[tenant]; ok { - st.timeseries += len(series.timeSeries) - st.totalSamples += samples + if st, ok := stats[tenant]; ok { + st.timeseries += len(series.timeSeries) + st.totalSamples += samples - stats[tenant] = st - } else { - stats[tenant] = requestStats{ - timeseries: len(series.timeSeries), - totalSamples: samples, + stats[tenant] = st + } else { + stats[tenant] = requestStats{ + timeseries: len(series.timeSeries), + totalSamples: samples, + } } } } } return stats + } func (h *Handler) fanoutForward(ctx context.Context, params remoteWriteParams) (tenantRequestStats, error) { @@ -736,7 +739,7 @@ func (h *Handler) fanoutForward(ctx context.Context, params remoteWriteParams) ( return stats, err } - stats = h.gatherWriteStats(localWrites) + stats = h.gatherWriteStats(localWrites, remoteWrites) // Prepare a buffered channel to receive the responses from the local and remote writes. Remote writes will all go // asynchronously and with this capacity we will never block on writing to the channel.