Ctrl K
ComunidadGuías…

cache/config.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package cache

import (
	"github.com/coroot/coroot/cache/chunk"
	"github.com/coroot/coroot/timeseries"
)

type Config struct {
	Path       string
	GC         *GcConfig
	Compaction *CompactionConfig
}

type GcConfig struct {
	Interval timeseries.Duration `yaml:"interval"`
	TTL      timeseries.Duration `yaml:"ttl"`
}

type CompactionConfig struct {
	Interval   timeseries.Duration `yaml:"interval"`
	WorkersNum int                 `yaml:"workers_num"`

	Compactors []Compactor `yaml:"compactors"`
}

type Compactor struct {
	SrcChunkDuration timeseries.Duration `yaml:"src_chunk_duration_seconds"`
	DstChunkDuration timeseries.Duration `yaml:"dst_chunk_duration_seconds"`
}

var DefaultCompactionConfig = CompactionConfig{
	Interval:   timeseries.Second * 10,
	WorkersNum: 1,
	Compactors: []Compactor{
		{SrcChunkDuration: chunk.Size, DstChunkDuration: timeseries.Hour},
		{SrcChunkDuration: timeseries.Hour, DstChunkDuration: 4 * timeseries.Hour},
		{SrcChunkDuration: 4 * timeseries.Hour, DstChunkDuration: 12 * timeseries.Hour},
	},
}