|
51 | 51 | supportedShardingStrategies = []string{util.ShardingStrategyDefault, util.ShardingStrategyShuffle} |
52 | 52 | errInvalidShardingStrategy = errors.New("invalid sharding strategy") |
53 | 53 |
|
54 | | - DefaultBlocksGrouperFactory = func(ctx context.Context, cfg Config, bkt objstore.Bucket, logger log.Logger, reg prometheus.Registerer, blocksMarkedForDeletion prometheus.Counter, garbageCollectedBlocks prometheus.Counter) compact.Grouper { |
| 54 | + DefaultBlocksGrouperFactory = func(ctx context.Context, cfg Config, bkt objstore.Bucket, logger log.Logger, reg prometheus.Registerer, blocksMarkedForDeletion prometheus.Counter, garbageCollectedBlocks prometheus.Counter, _ prometheus.Gauge) compact.Grouper { |
55 | 55 | return compact.NewDefaultGrouper( |
56 | 56 | logger, |
57 | 57 | bkt, |
|
64 | 64 | metadata.NoneFunc) |
65 | 65 | } |
66 | 66 |
|
67 | | - ShuffleShardingGrouperFactory = func(ctx context.Context, cfg Config, bkt objstore.Bucket, logger log.Logger, reg prometheus.Registerer, blocksMarkedForDeletion prometheus.Counter, garbageCollectedBlocks prometheus.Counter) compact.Grouper { |
| 67 | + ShuffleShardingGrouperFactory = func(ctx context.Context, cfg Config, bkt objstore.Bucket, logger log.Logger, reg prometheus.Registerer, blocksMarkedForDeletion prometheus.Counter, garbageCollectedBlocks prometheus.Counter, remainingPlannedCompactions prometheus.Gauge) compact.Grouper { |
68 | 68 | return NewShuffleShardingGrouper( |
69 | 69 | logger, |
70 | 70 | bkt, |
|
74 | 74 | blocksMarkedForDeletion, |
75 | 75 | prometheus.NewCounter(prometheus.CounterOpts{}), |
76 | 76 | garbageCollectedBlocks, |
| 77 | + remainingPlannedCompactions, |
77 | 78 | metadata.NoneFunc, |
78 | 79 | cfg) |
79 | 80 | } |
@@ -108,6 +109,7 @@ type BlocksGrouperFactory func( |
108 | 109 | reg prometheus.Registerer, |
109 | 110 | blocksMarkedForDeletion prometheus.Counter, |
110 | 111 | garbageCollectedBlocks prometheus.Counter, |
| 112 | + remainingPlannedCompactions prometheus.Gauge, |
111 | 113 | ) compact.Grouper |
112 | 114 |
|
113 | 115 | // BlocksCompactorFactory builds and returns the compactor and planner to use to compact a tenant's blocks. |
@@ -256,6 +258,7 @@ type Compactor struct { |
256 | 258 | compactionRunInterval prometheus.Gauge |
257 | 259 | blocksMarkedForDeletion prometheus.Counter |
258 | 260 | garbageCollectedBlocks prometheus.Counter |
| 261 | + remainingPlannedCompactions prometheus.Gauge |
259 | 262 |
|
260 | 263 | // TSDB syncer metrics |
261 | 264 | syncerMetrics *syncerMetrics |
@@ -303,6 +306,13 @@ func newCompactor( |
303 | 306 | blocksGrouperFactory BlocksGrouperFactory, |
304 | 307 | blocksCompactorFactory BlocksCompactorFactory, |
305 | 308 | ) (*Compactor, error) { |
| 309 | + var remainingPlannedCompactions prometheus.Gauge |
| 310 | + if compactorCfg.ShardingStrategy == "shuffle-sharding" { |
| 311 | + remainingPlannedCompactions = promauto.With(registerer).NewGauge(prometheus.GaugeOpts{ |
| 312 | + Name: "cortex_compactor_remaining_planned_compactions", |
| 313 | + Help: "Total number of plans that remain to be compacted.", |
| 314 | + }) |
| 315 | + } |
306 | 316 | c := &Compactor{ |
307 | 317 | compactorCfg: compactorCfg, |
308 | 318 | storageCfg: storageCfg, |
@@ -361,6 +371,7 @@ func newCompactor( |
361 | 371 | Name: "cortex_compactor_garbage_collected_blocks_total", |
362 | 372 | Help: "Total number of blocks marked for deletion by compactor.", |
363 | 373 | }), |
| 374 | + remainingPlannedCompactions: remainingPlannedCompactions, |
364 | 375 | } |
365 | 376 |
|
366 | 377 | if len(compactorCfg.EnabledTenants) > 0 { |
@@ -696,7 +707,7 @@ func (c *Compactor) compactUser(ctx context.Context, userID string) error { |
696 | 707 | compactor, err := compact.NewBucketCompactor( |
697 | 708 | ulogger, |
698 | 709 | syncer, |
699 | | - c.blocksGrouperFactory(ctx, c.compactorCfg, bucket, ulogger, reg, c.blocksMarkedForDeletion, c.garbageCollectedBlocks), |
| 710 | + c.blocksGrouperFactory(ctx, c.compactorCfg, bucket, ulogger, reg, c.blocksMarkedForDeletion, c.garbageCollectedBlocks, c.remainingPlannedCompactions), |
700 | 711 | c.blocksPlanner, |
701 | 712 | c.blocksCompactor, |
702 | 713 | path.Join(c.compactorCfg.DataDir, "compact"), |
|
0 commit comments