Versions in this module Expand all Collapse all v2 v2.0.1 Apr 20, 2026 v2.0.0 Apr 20, 2026 Changes in this version + const CompactionOrderNewestFirst + const CompactionOrderOldestFirst + const CompactionSplitByFingerprint + const CompactionSplitByStacktracePartition + var CompactionOrders = []string + var CompactionSplitBys = []string + var RingOp = ring.NewOp([]ring.InstanceState{ ... }, nil) + func DefaultGroupKey(meta block.Meta) string + type BlockCompactor struct + func (c *BlockCompactor) CompactWithSplitting(ctx context.Context, dest string, dirs []string, shardCount, stageSize uint64) ([]ulid.ULID, error) + type BlocksCleaner struct + func NewBlocksCleaner(cfg BlocksCleanerConfig, bucketClient objstore.Bucket, ...) *BlocksCleaner + type BlocksCleanerConfig struct + CleanupConcurrency int + CleanupInterval time.Duration + DeleteBlocksConcurrency int + DeletionDelay time.Duration + NoBlocksFileCleanupEnabled bool + TenantCleanupDelay time.Duration + type BlocksCompactorFactory func(ctx context.Context, cfg Config, cfgProvider ConfigProvider, userID string, ...) (Compactor, error) + type BlocksGrouperFactory func(ctx context.Context, cfg Config, cfgProvider ConfigProvider, userID string, ...) Grouper + type BlocksPlannerFactory func(cfg Config) Planner + type BucketCompactor struct + func NewBucketCompactor(logger log.Logger, sy *Syncer, grouper Grouper, planner Planner, ...) (*BucketCompactor, error) + func (c *BucketCompactor) Compact(ctx context.Context, maxCompactionTime time.Duration) (rerr error) + type BucketCompactorMetrics struct + func NewBucketCompactorMetrics(blocksMarkedForDeletion prometheus.Counter, reg prometheus.Registerer) *BucketCompactorMetrics + type Compactor interface + CompactWithSplitting func(ctx context.Context, dst string, dirs []string, shardCount, stageSize uint64) (result []ulid.ULID, _ error) + type CompactorMetrics struct + Duration *prometheus.HistogramVec + InProgress *prometheus.GaugeVec + OverlappingBlocks prometheus.Counter + Ran *prometheus.CounterVec + Range *prometheus.HistogramVec + Samples *prometheus.HistogramVec + Size *prometheus.HistogramVec + Split *prometheus.HistogramVec + type Config struct + BlockRanges DurationList + BlockSyncConcurrency int + BlocksCompactorFactory BlocksCompactorFactory + BlocksGrouperFactory BlocksGrouperFactory + BlocksPlannerFactory BlocksPlannerFactory + CleanupConcurrency int + CleanupInterval time.Duration + CompactionConcurrency int + CompactionInterval time.Duration + CompactionJobsOrder string + CompactionRetries int + CompactionSplitBy string + CompactionWaitPeriod time.Duration + DataDir string + DeletionDelay time.Duration + DisabledTenants flagext.StringSliceCSV + DownsamplerEnabled bool + EnabledTenants flagext.StringSliceCSV + MaxCompactionTime time.Duration + MaxOpeningBlocksConcurrency int + MetaSyncConcurrency int + NoBlocksFileCleanupEnabled bool + ShardingRing RingConfig + ShutdownTimeout time.Duration + TenantCleanupDelay time.Duration + func (cfg *Config) RegisterFlags(f *flag.FlagSet, logger log.Logger) + func (cfg *Config) Validate(maxBlockDuration time.Duration) error + type ConfigProvider interface + CompactorBlocksRetentionPeriod func(user string) time.Duration + CompactorDownsamplerEnabled func(userId string) bool + CompactorPartialBlockDeletionDelay func(userID string) (delay time.Duration, valid bool) + CompactorSplitAndMergeShards func(userID string) int + CompactorSplitAndMergeStageSize func(userID string) int + CompactorSplitGroups func(userID string) int + CompactorTenantShardSize func(userID string) int + type DeduplicateFilter interface + DuplicateIDs func() []ulid.ULID + type DurationList []time.Duration + func (d *DurationList) Set(s string) error + func (d *DurationList) String() string + func (d *DurationList) ToMilliseconds() []int64 + type Grouper interface + Groups func(blocks map[ulid.ULID]*block.Meta) (res []*Job, err error) + type Job struct + func NewJob(userID string, key string, lset labels.Labels, resolution int64, ...) *Job + func (job *Job) AppendMeta(meta *block.Meta) error + func (job *Job) IDs() (ids []ulid.ULID) + func (job *Job) Key() string + func (job *Job) Labels() labels.Labels + func (job *Job) MaxTime() int64 + func (job *Job) Metas() []*block.Meta + func (job *Job) MinCompactionLevel() int + func (job *Job) MinTime() int64 + func (job *Job) Resolution() int64 + func (job *Job) ShardingKey() string + func (job *Job) SplitStageSize() uint32 + func (job *Job) SplittingShards() uint32 + func (job *Job) String() string + func (job *Job) UseSplitting() bool + func (job *Job) UserID() string + type JobsOrderFunc func(jobs []*Job) []*Job + func GetJobsOrderFunction(name string) JobsOrderFunc + type LabelRemoverFilter struct + func NewLabelRemoverFilter(labels []string) *LabelRemoverFilter + func (f *LabelRemoverFilter) Filter(_ context.Context, metas map[ulid.ULID]*block.Meta, _ block.GaugeVec) error + type MultitenantCompactor struct + func NewMultitenantCompactor(compactorCfg Config, bucketClient objstore.Bucket, cfgProvider ConfigProvider, ...) (*MultitenantCompactor, error) + func (c *MultitenantCompactor) RingHandler(w http.ResponseWriter, req *http.Request) + type NoCompactionMarkFilter struct + func NewNoCompactionMarkFilter(bkt objstore.BucketReader, removeNoCompactBlocks bool) *NoCompactionMarkFilter + func (f *NoCompactionMarkFilter) Filter(ctx context.Context, metas map[ulid.ULID]*block.Meta, synced block.GaugeVec) error + func (f *NoCompactionMarkFilter) NoCompactMarkedBlocks() map[ulid.ULID]struct{} + type Planner interface + Plan func(ctx context.Context, metasByMinTime []*block.Meta) ([]*block.Meta, error) + type RingConfig struct + Common util.CommonRingConfig + ObservePeriod time.Duration + WaitActiveInstanceTimeout time.Duration + WaitStabilityMaxDuration time.Duration + WaitStabilityMinDuration time.Duration + func (cfg *RingConfig) RegisterFlags(f *flag.FlagSet, logger log.Logger) + func (cfg *RingConfig) ToBasicLifecyclerConfig(logger log.Logger) (ring.BasicLifecyclerConfig, error) + type ShardAwareDeduplicateFilter struct + func NewShardAwareDeduplicateFilter() *ShardAwareDeduplicateFilter + func (f *ShardAwareDeduplicateFilter) DuplicateIDs() []ulid.ULID + func (f *ShardAwareDeduplicateFilter) Filter(ctx context.Context, metas map[ulid.ULID]*block.Meta, synced block.GaugeVec) error + type SplitAndMergeGrouper struct + func NewSplitAndMergeGrouper(userID string, ranges []int64, shardCount uint32, splitStageSize uint32, ...) *SplitAndMergeGrouper + func (g *SplitAndMergeGrouper) Groups(blocks map[ulid.ULID]*block.Meta) (res []*Job, err error) + type SplitAndMergePlanner struct + func NewSplitAndMergePlanner(ranges []int64) *SplitAndMergePlanner + func (c *SplitAndMergePlanner) Plan(_ context.Context, metasByMinTime []*block.Meta) ([]*block.Meta, error) + type Syncer struct + func NewMetaSyncer(logger log.Logger, reg prometheus.Registerer, bkt objstore.Bucket, ...) (*Syncer, error) + func (s *Syncer) GarbageCollect(ctx context.Context) error + func (s *Syncer) Metas() map[ulid.ULID]*block.Meta + func (s *Syncer) SyncMetas(ctx context.Context) error Other modules containing this package github.com/grafana/pyroscope