Documentation ¶
Index ¶
- Constants
- type BlocksReplicationStrategy
- type BucketStoreMetrics
- type BucketStores
- type Config
- type MetadataFetcherMetrics
- type ReplicaLabelRemover
- type RingConfig
- type ShardingMetadataFilter
- type StoreGateway
- func (g *StoreGateway) OnRingInstanceHeartbeat(_ *ring.BasicLifecycler, _ *ring.Desc, _ *ring.IngesterDesc)
- func (g *StoreGateway) OnRingInstanceRegister(_ *ring.BasicLifecycler, ringDesc ring.Desc, instanceExists bool, ...) (ring.IngesterState, ring.Tokens)
- func (g *StoreGateway) OnRingInstanceStopping(_ *ring.BasicLifecycler)
- func (g *StoreGateway) OnRingInstanceTokens(_ *ring.BasicLifecycler, _ ring.Tokens)
- func (c *StoreGateway) RingHandler(w http.ResponseWriter, req *http.Request)
- func (g *StoreGateway) Series(req *storepb.SeriesRequest, srv storegatewaypb.StoreGateway_SeriesServer) error
Constants ¶
const ( // RingKey is the key under which we store the store gateways ring in the KVStore. RingKey = "store-gateway" // RingNameForServer is the name of the ring used by the store gateway server. RingNameForServer = "store-gateway" // RingNameForClient is the name of the ring used by the store gateway client (we need // a different name to avoid clashing Prometheus metrics when running in single-binary). RingNameForClient = "store-gateway-client" // We use a safe default instead of exposing to config option to the user // in order to simplify the config. RingNumTokens = 512 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BlocksReplicationStrategy ¶
type BlocksReplicationStrategy struct{}
func (*BlocksReplicationStrategy) Filter ¶
func (s *BlocksReplicationStrategy) Filter(instances []ring.IngesterDesc, op ring.Operation, replicationFactor int, heartbeatTimeout time.Duration) ([]ring.IngesterDesc, int, error)
func (*BlocksReplicationStrategy) ShouldExtendReplicaSet ¶
func (s *BlocksReplicationStrategy) ShouldExtendReplicaSet(instance ring.IngesterDesc, op ring.Operation) bool
type BucketStoreMetrics ¶
type BucketStoreMetrics struct {
// contains filtered or unexported fields
}
BucketStoreMetrics aggregates metrics exported by Thanos Bucket Store and re-exports those aggregates as Cortex metrics.
func NewBucketStoreMetrics ¶
func NewBucketStoreMetrics() *BucketStoreMetrics
func (*BucketStoreMetrics) AddUserRegistry ¶
func (m *BucketStoreMetrics) AddUserRegistry(user string, reg *prometheus.Registry)
func (*BucketStoreMetrics) Collect ¶
func (m *BucketStoreMetrics) Collect(out chan<- prometheus.Metric)
func (*BucketStoreMetrics) Describe ¶
func (m *BucketStoreMetrics) Describe(out chan<- *prometheus.Desc)
type BucketStores ¶
type BucketStores struct {
// contains filtered or unexported fields
}
BucketStores is a multi-tenant wrapper of Thanos BucketStore.
func NewBucketStores ¶
func NewBucketStores(cfg tsdb.BlocksStorageConfig, filters []block.MetadataFilter, bucketClient objstore.Bucket, limits *validation.Overrides, logLevel logging.Level, logger log.Logger, reg prometheus.Registerer) (*BucketStores, error)
NewBucketStores makes a new BucketStores.
func (*BucketStores) InitialSync ¶
func (u *BucketStores) InitialSync(ctx context.Context) error
InitialSync does an initial synchronization of blocks for all users.
func (*BucketStores) Series ¶
func (u *BucketStores) Series(req *storepb.SeriesRequest, srv storepb.Store_SeriesServer) error
Series makes a series request to the underlying user bucket store.
func (*BucketStores) SyncBlocks ¶
func (u *BucketStores) SyncBlocks(ctx context.Context) error
SyncBlocks synchronizes the stores state with the Bucket store for every user.
type Config ¶
type Config struct { ShardingEnabled bool `yaml:"sharding_enabled"` ShardingRing RingConfig `` /* 127-byte string literal not displayed */ }
Config holds the store gateway config.
func (*Config) RegisterFlags ¶
RegisterFlags registers the Config flags.
type MetadataFetcherMetrics ¶
type MetadataFetcherMetrics struct {
// contains filtered or unexported fields
}
This struct aggregates metrics exported by Thanos MetaFetcher and re-exports those aggregates as Cortex metrics.
func NewMetadataFetcherMetrics ¶
func NewMetadataFetcherMetrics() *MetadataFetcherMetrics
func (*MetadataFetcherMetrics) AddUserRegistry ¶
func (m *MetadataFetcherMetrics) AddUserRegistry(user string, reg *prometheus.Registry)
func (*MetadataFetcherMetrics) Collect ¶
func (m *MetadataFetcherMetrics) Collect(out chan<- prometheus.Metric)
func (*MetadataFetcherMetrics) Describe ¶
func (m *MetadataFetcherMetrics) Describe(out chan<- *prometheus.Desc)
type ReplicaLabelRemover ¶
type ReplicaLabelRemover struct {
// contains filtered or unexported fields
}
ReplicaLabelRemover is a BaseFetcher modifier modifies external labels of existing blocks, it removes given replica labels from the metadata of blocks that have it.
func NewReplicaLabelRemover ¶
func NewReplicaLabelRemover(logger log.Logger, replicaLabels []string) *ReplicaLabelRemover
NewReplicaLabelRemover creates a ReplicaLabelRemover.
func (*ReplicaLabelRemover) Modify ¶
func (r *ReplicaLabelRemover) Modify(_ context.Context, metas map[ulid.ULID]*thanos_metadata.Meta, modified *extprom.TxGaugeVec) error
Modify modifies external labels of existing blocks, it removes given replica labels from the metadata of blocks that have it.
type RingConfig ¶
type RingConfig struct { KVStore kv.Config `` /* 206-byte string literal not displayed */ HeartbeatPeriod time.Duration `yaml:"heartbeat_period"` HeartbeatTimeout time.Duration `yaml:"heartbeat_timeout"` ReplicationFactor int `yaml:"replication_factor"` TokensFilePath string `yaml:"tokens_file_path"` // Instance details InstanceID string `yaml:"instance_id" doc:"hidden"` InstanceInterfaceNames []string `yaml:"instance_interface_names" doc:"hidden"` InstancePort int `yaml:"instance_port" doc:"hidden"` InstanceAddr string `yaml:"instance_addr" doc:"hidden"` // Injected internally ListenPort int `yaml:"-"` RingCheckPeriod time.Duration `yaml:"-"` }
RingConfig masks the ring lifecycler config which contains many options not really required by the store gateways ring. This config is used to strip down the config to the minimum, and avoid confusion to the user.
func (*RingConfig) RegisterFlags ¶
func (cfg *RingConfig) RegisterFlags(f *flag.FlagSet)
RegisterFlags adds the flags required to config this to the given FlagSet
func (*RingConfig) ToLifecyclerConfig ¶
func (cfg *RingConfig) ToLifecyclerConfig() (ring.BasicLifecyclerConfig, error)
func (*RingConfig) ToRingConfig ¶
func (cfg *RingConfig) ToRingConfig() ring.Config
type ShardingMetadataFilter ¶
type ShardingMetadataFilter struct {
// contains filtered or unexported fields
}
ShardingMetadataFilter represents struct that allows sharding using the ring. Not go-routine safe.
func NewShardingMetadataFilter ¶
func NewShardingMetadataFilter(r *ring.Ring, instanceAddr string, logger log.Logger) *ShardingMetadataFilter
NewShardingMetadataFilter creates ShardingMetadataFilter.
type StoreGateway ¶
StoreGateway is the Cortex service responsible to expose an API over the bucket where blocks are stored, supporting blocks sharding and replication across a pool of store gateway instances (optional).
func NewStoreGateway ¶
func NewStoreGateway(gatewayCfg Config, storageCfg cortex_tsdb.BlocksStorageConfig, limits *validation.Overrides, logLevel logging.Level, logger log.Logger, reg prometheus.Registerer) (*StoreGateway, error)
func (*StoreGateway) OnRingInstanceHeartbeat ¶
func (g *StoreGateway) OnRingInstanceHeartbeat(_ *ring.BasicLifecycler, _ *ring.Desc, _ *ring.IngesterDesc)
func (*StoreGateway) OnRingInstanceRegister ¶
func (g *StoreGateway) OnRingInstanceRegister(_ *ring.BasicLifecycler, ringDesc ring.Desc, instanceExists bool, instanceID string, instanceDesc ring.IngesterDesc) (ring.IngesterState, ring.Tokens)
func (*StoreGateway) OnRingInstanceStopping ¶
func (g *StoreGateway) OnRingInstanceStopping(_ *ring.BasicLifecycler)
func (*StoreGateway) OnRingInstanceTokens ¶
func (g *StoreGateway) OnRingInstanceTokens(_ *ring.BasicLifecycler, _ ring.Tokens)
func (*StoreGateway) RingHandler ¶
func (c *StoreGateway) RingHandler(w http.ResponseWriter, req *http.Request)
func (*StoreGateway) Series ¶
func (g *StoreGateway) Series(req *storepb.SeriesRequest, srv storegatewaypb.StoreGateway_SeriesServer) error