Pin fine/coarse mergeDump to the 1min/5min boundary, fixes sparkline
This commit is contained in:
@@ -58,8 +58,8 @@ func Backfill(ctx context.Context, collectorAddrs []string, cache *Cache) {
|
|||||||
|
|
||||||
for range collectorAddrs {
|
for range collectorAddrs {
|
||||||
r := <-ch
|
r := <-ch
|
||||||
mergeDump(r.fine, fineByTS)
|
mergeDump(r.fine, fineByTS, time.Minute)
|
||||||
mergeDump(r.coarse, coarseByTS)
|
mergeDump(r.coarse, coarseByTS, 5*time.Minute)
|
||||||
}
|
}
|
||||||
|
|
||||||
mergeStart := time.Now()
|
mergeStart := time.Now()
|
||||||
@@ -114,9 +114,10 @@ func dumpCollector(ctx context.Context, addr string) (fine, coarse []st.Snapshot
|
|||||||
|
|
||||||
// mergeDump adds all snapshots from one collector's dump into the per-timestamp
|
// mergeDump adds all snapshots from one collector's dump into the per-timestamp
|
||||||
// accumulator map. Multiple collectors' entries for the same timestamp are summed.
|
// accumulator map. Multiple collectors' entries for the same timestamp are summed.
|
||||||
func mergeDump(snaps []st.Snapshot, byTS map[int64]map[string]int64) {
|
// granularity should match the ring bucket size (time.Minute for fine, 5*time.Minute for coarse).
|
||||||
|
func mergeDump(snaps []st.Snapshot, byTS map[int64]map[string]int64, granularity time.Duration) {
|
||||||
for _, snap := range snaps {
|
for _, snap := range snaps {
|
||||||
ts := snap.Timestamp.Unix()
|
ts := snap.Timestamp.Truncate(granularity).Unix()
|
||||||
m := byTS[ts]
|
m := byTS[ts]
|
||||||
if m == nil {
|
if m == nil {
|
||||||
m = make(map[string]int64, len(snap.Entries))
|
m = make(map[string]int64, len(snap.Entries))
|
||||||
|
|||||||
Reference in New Issue
Block a user