Documentation
¶
Index ¶
- func CopyMarkers(src string, dst client.ObjectClient, dstName string) error
- func ExtractIntervalFromTableName(tableName string) model.Interval
- type Chunk
- type ChunkClient
- type ExpirationChecker
- type IndexCleaner
- type IndexProcessor
- type IntervalFilter
- type Limits
- type Marker
- type MarkerProcessor
- type MarkerStorageWriter
- type Series
- type SeriesCallback
- type SeriesIterator
- type Sweeper
- type TableMarker
- type TenantRetentionSnapshot
- type TenantsRetention
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CopyMarkers ¶
func CopyMarkers(src string, dst client.ObjectClient, dstName string) error
CopyMarkers checks for markers in the src dir and copies them to the dst. dstName must be a human-readable name for what dst is.
func ExtractIntervalFromTableName ¶
ExtractIntervalFromTableName gives back the time interval for which the table is expected to hold the chunks index.
Types ¶
type ChunkClient ¶
type ExpirationChecker ¶
type ExpirationChecker interface {
Expired(userID []byte, chk Chunk, lbls labels.Labels, seriesID []byte, tableName string, now model.Time) (bool, filter.Func)
IntervalMayHaveExpiredChunks(interval model.Interval, userID string) bool
MarkPhaseStarted()
MarkPhaseFailed()
MarkPhaseTimedOut()
MarkPhaseFinished()
DropFromIndex(userID []byte, chk Chunk, labels labels.Labels, tableEndTime model.Time, now model.Time) bool
CanSkipSeries(userID []byte, lbls labels.Labels, seriesID []byte, seriesStart model.Time, tableName string, now model.Time) bool
MarkSeriesAsProcessed(userID, seriesID []byte, lbls labels.Labels, tableName string) error
}
func NeverExpiringExpirationChecker ¶
func NeverExpiringExpirationChecker(_ Limits) ExpirationChecker
NeverExpiringExpirationChecker returns an expiration checker that never expires anything
func NewExpirationChecker ¶
func NewExpirationChecker(limits Limits) ExpirationChecker
type IndexCleaner ¶ added in v3.5.0
type IndexCleaner interface {
RemoveChunk(from, through model.Time, userID []byte, labels labels.Labels, chunkID string) (bool, error)
// CleanupSeries is for cleaning up the series that do have any chunks left in the index.
// It would only be called for the series that have all their chunks deleted without adding new ones.
CleanupSeries(userID []byte, lbls labels.Labels) error
}
type IndexProcessor ¶
type IndexProcessor interface {
SeriesIterator
IndexCleaner
ChunkExists(userID []byte, lbls labels.Labels, chunkRef logproto.ChunkRef) (bool, error)
// contains filtered or unexported methods
}
type IntervalFilter ¶
IntervalFilter contains the interval to delete and the function that filters lines. These will be applied to a chunk.
type Limits ¶
type Limits interface {
RetentionPeriod(userID string) time.Duration
StreamRetention(userID string) []validation.StreamRetention
AllByUserID() map[string]*validation.Limits
DefaultLimits() *validation.Limits
PoliciesStreamMapping(userID string) validation.PolicyStreamMapping
}
type Marker ¶
type Marker struct {
// contains filtered or unexported fields
}
func NewMarker ¶
func NewMarker(markerStorageClient client.ObjectClient, expiration ExpirationChecker, markTimeout time.Duration, chunkClient client.Client, r prometheus.Registerer) (*Marker, error)
func (*Marker) FindAndMarkChunksForDeletion ¶ added in v3.6.0
func (t *Marker) FindAndMarkChunksForDeletion(ctx context.Context, tableName, userID string, indexProcessor IndexProcessor, logger log.Logger) (bool, bool, error)
FindAndMarkChunksForDeletion finds expired chunks using the ExpirationChecker from the given table and marks them for deletion.
type MarkerProcessor ¶
type MarkerProcessor interface {
// Start starts parsing marks and calling deleteFunc for each.
// If deleteFunc returns no error the mark is deleted from the storage.
// Otherwise the mark will reappears in future iteration.
Start(deleteFunc func(ctx context.Context, chunkId []byte) error)
// Stop stops processing marks.
Stop()
}
type MarkerStorageWriter ¶
func NewMarkerWriter ¶ added in v3.7.0
func NewMarkerWriter(markerStorageClient client.ObjectClient) (MarkerStorageWriter, error)
type Series ¶ added in v3.5.0
type SeriesCallback ¶ added in v3.5.0
type SeriesIterator ¶ added in v3.5.0
type SeriesIterator interface {
ForEachSeries(ctx context.Context, callback SeriesCallback) error
}
type Sweeper ¶
type Sweeper struct {
// contains filtered or unexported fields
}
func NewSweeper ¶
func NewSweeper( markerStorageClient client.ObjectClient, deleteClient ChunkClient, deleteWorkerCount int, minAgeDelete time.Duration, backoffConfig backoff.Config, r prometheus.Registerer, ) (*Sweeper, error)
type TableMarker ¶
type TableMarker interface {
// FindAndMarkChunksForDeletion marks chunks to delete for a given table and returns if it's empty or modified.
FindAndMarkChunksForDeletion(ctx context.Context, tableName, userID string, indexProcessor IndexProcessor, logger log.Logger) (bool, bool, error)
// MarkChunksForDeletion marks the given list of chunks for deletion
MarkChunksForDeletion(tableName string, chunks []string) error
}
type TenantRetentionSnapshot ¶ added in v3.5.0
type TenantRetentionSnapshot struct {
// contains filtered or unexported fields
}
TenantRetentionSnapshot is a snapshot of retention rules for a tenant. The underlying retention rules may change on the original limits object passed to NewTenantRetentionSnapshot, but the snapshot is immutable.
func NewTenantRetentionSnapshot ¶ added in v3.5.0
func NewTenantRetentionSnapshot(limits Limits, userID string) *TenantRetentionSnapshot
func (*TenantRetentionSnapshot) RetentionHoursFor ¶ added in v3.5.0
func (r *TenantRetentionSnapshot) RetentionHoursFor(lbs labels.Labels) string
func (*TenantRetentionSnapshot) RetentionPeriodFor ¶ added in v3.5.0
func (r *TenantRetentionSnapshot) RetentionPeriodFor(lbs labels.Labels) time.Duration
type TenantsRetention ¶
type TenantsRetention struct {
// contains filtered or unexported fields
}
func NewTenantsRetention ¶
func NewTenantsRetention(l Limits) *TenantsRetention
func (*TenantsRetention) RetentionHoursFor ¶ added in v3.5.0
func (tr *TenantsRetention) RetentionHoursFor(userID string, lbs labels.Labels) string