Documentation
¶
Index ¶
- Constants
- Variables
- func ForStateMetric(base labels.Labels, alertName string) labels.Labels
- func MemstoreTenantManager(cfg Config, engine *logql.Engine, overrides RulesLimits) ruler.ManagerFactory
- func MultiTenantManagerAdapter(mgr ruler.MultiTenantManager) ruler.MultiTenantManager
- func NewRuler(cfg Config, engine *logql.Engine, reg prometheus.Registerer, logger log.Logger, ...) (*ruler.Ruler, error)
- func ValidateGroups(grps ...rulefmt.RuleGroup) (errs []error)
- type Config
- type DiscardingAppender
- func (a DiscardingAppender) Add(l labels.Labels, t int64, v float64) (uint64, error)
- func (a DiscardingAppender) Append(ref uint64, l labels.Labels, t int64, v float64) (uint64, error)
- func (a DiscardingAppender) AppendExemplar(ref uint64, l labels.Labels, e exemplar.Exemplar) (uint64, error)
- func (a DiscardingAppender) Appender(_ context.Context) storage.Appender
- func (a DiscardingAppender) Commit() error
- func (a DiscardingAppender) Rollback() error
- type GroupLoader
- type MemStore
- type MultiTenantManager
- type RemoteWriteAppendable
- type RemoteWriteAppender
- func (a *RemoteWriteAppender) Append(_ uint64, l labels.Labels, t int64, v float64) (uint64, error)
- func (a *RemoteWriteAppender) AppendExemplar(_ uint64, _ labels.Labels, _ exemplar.Exemplar) (uint64, error)
- func (a *RemoteWriteAppender) Commit() error
- func (a *RemoteWriteAppender) Rollback() error
- func (a *RemoteWriteAppender) WithQueueCapacity(capacity int) error
- type RemoteWriteClient
- type RemoteWriteConfig
- type RemoteWriter
- type RuleCache
- type RuleIter
- type RulesLimits
- type TimeSeriesEntry
Constants ¶
const (
AlertForStateMetricName = "ALERTS_FOR_STATE"
)
Variables ¶
var ErrRemoteWriteDisabled = errors.New("remote-write disabled")
var UserAgent = fmt.Sprintf("loki-remote-write/%s", build.Version)
Functions ¶
func MemstoreTenantManager ¶
func MemstoreTenantManager( cfg Config, engine *logql.Engine, overrides RulesLimits, ) ruler.ManagerFactory
func MultiTenantManagerAdapter ¶
func MultiTenantManagerAdapter(mgr ruler.MultiTenantManager) ruler.MultiTenantManager
MultiTenantManagerAdapter will wrap a MultiTenantManager which validates loki rules
func NewRuler ¶
func NewRuler(cfg Config, engine *logql.Engine, reg prometheus.Registerer, logger log.Logger, ruleStore rulestore.RuleStore, limits RulesLimits) (*ruler.Ruler, error)
func ValidateGroups ¶
Types ¶
type Config ¶
type Config struct { ruler.Config `yaml:",inline"` RemoteWrite RemoteWriteConfig `yaml:"remote_write,omitempty"` }
func (*Config) RegisterFlags ¶
type DiscardingAppender ¶
type DiscardingAppender struct {
// contains filtered or unexported fields
}
DiscardingAppender is used when remote-write for recording rules is disabled
func (DiscardingAppender) AppendExemplar ¶
func (DiscardingAppender) Appender ¶
func (a DiscardingAppender) Appender(_ context.Context) storage.Appender
func (DiscardingAppender) Commit ¶
func (a DiscardingAppender) Commit() error
func (DiscardingAppender) Rollback ¶
func (a DiscardingAppender) Rollback() error
type GroupLoader ¶
type GroupLoader struct{}
func (GroupLoader) Load ¶
func (g GroupLoader) Load(identifier string) (*rulefmt.RuleGroups, []error)
type MemStore ¶
type MemStore struct {
// contains filtered or unexported fields
}
func NewMemStore ¶
func (*MemStore) Querier ¶
implement storage.Queryable. It is only called with the desired ts as maxtime. Mint is parameterized via the outage tolerance, but since we're synthetically generating these, we only care about the desired time.
type MultiTenantManager ¶
type MultiTenantManager struct {
ruler.MultiTenantManager
}
MultiTenantManager wraps a cortex MultiTenantManager but validates loki rules
func (*MultiTenantManager) ValidateRuleGroup ¶
func (m *MultiTenantManager) ValidateRuleGroup(grp rulefmt.RuleGroup) []error
ValidateRuleGroup validates a rulegroup
type RemoteWriteAppendable ¶
type RemoteWriteAppendable struct {
// contains filtered or unexported fields
}
type RemoteWriteAppender ¶
type RemoteWriteAppender struct {
// contains filtered or unexported fields
}
func (*RemoteWriteAppender) AppendExemplar ¶
func (*RemoteWriteAppender) Commit ¶
func (a *RemoteWriteAppender) Commit() error
func (*RemoteWriteAppender) Rollback ¶
func (a *RemoteWriteAppender) Rollback() error
func (*RemoteWriteAppender) WithQueueCapacity ¶
func (a *RemoteWriteAppender) WithQueueCapacity(capacity int) error
type RemoteWriteClient ¶
type RemoteWriteClient struct { remote.WriteClient // contains filtered or unexported fields }
func (*RemoteWriteClient) PrepareRequest ¶
func (r *RemoteWriteClient) PrepareRequest(queue util.Queue) ([]byte, error)
PrepareRequest takes the given queue and serializes it into a compressed proto write request that will be sent to Cortex
type RemoteWriteConfig ¶
type RemoteWriteConfig struct { Client config.RemoteWriteConfig `yaml:"client"` Enabled bool `yaml:"enabled"` }
func (*RemoteWriteConfig) RegisterFlags ¶
func (c *RemoteWriteConfig) RegisterFlags(f *flag.FlagSet)
RegisterFlags adds the flags required to config this to the given FlagSet.
func (*RemoteWriteConfig) Validate ¶
func (c *RemoteWriteConfig) Validate() error
type RemoteWriter ¶
func NewRemoteWriter ¶
func NewRemoteWriter(cfg Config, userID string) (RemoteWriter, error)
type RuleCache ¶
type RuleCache struct {
// contains filtered or unexported fields
}
func NewRuleCache ¶
func NewRuleCache(metrics *memstoreMetrics) *RuleCache
func (*RuleCache) CleanupOldSamples ¶
CleanupOldSamples removes samples that are outside of the rule's `For` duration.
type RuleIter ¶
type RuleIter interface {
AlertingRules() []*rules.AlertingRule
}
type RulesLimits ¶
type RulesLimits interface { ruler.RulesLimits RulerRemoteWriteQueueCapacity(userID string) int }
RulesLimits is the one function we need from limits.Overrides, and is here to limit coupling.