Skip to content

Commit 5b70304

Browse files
authored
Expose some ruler types to ease reuse. (#4312)
Signed-off-by: Peter Štibraný <peter.stibrany@grafana.com>
1 parent c1023f3 commit 5b70304

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

pkg/ruler/compat.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ type Pusher interface {
2727
Push(context.Context, *cortexpb.WriteRequest) (*cortexpb.WriteResponse, error)
2828
}
2929

30-
type pusherAppender struct {
30+
type PusherAppender struct {
3131
failedWrites prometheus.Counter
3232
totalWrites prometheus.Counter
3333

@@ -39,7 +39,7 @@ type pusherAppender struct {
3939
evaluationDelay time.Duration
4040
}
4141

42-
func (a *pusherAppender) Append(_ uint64, l labels.Labels, t int64, v float64) (uint64, error) {
42+
func (a *PusherAppender) Append(_ uint64, l labels.Labels, t int64, v float64) (uint64, error) {
4343
a.labels = append(a.labels, l)
4444

4545
// Adapt staleness markers for ruler evaluation delay. As the upstream code
@@ -61,11 +61,11 @@ func (a *pusherAppender) Append(_ uint64, l labels.Labels, t int64, v float64) (
6161
return 0, nil
6262
}
6363

64-
func (a *pusherAppender) AppendExemplar(_ uint64, _ labels.Labels, _ exemplar.Exemplar) (uint64, error) {
64+
func (a *PusherAppender) AppendExemplar(_ uint64, _ labels.Labels, _ exemplar.Exemplar) (uint64, error) {
6565
return 0, errors.New("exemplars are unsupported")
6666
}
6767

68-
func (a *pusherAppender) Commit() error {
68+
func (a *PusherAppender) Commit() error {
6969
a.totalWrites.Inc()
7070

7171
// Since a.pusher is distributor, client.ReuseSlice will be called in a.pusher.Push.
@@ -84,7 +84,7 @@ func (a *pusherAppender) Commit() error {
8484
return err
8585
}
8686

87-
func (a *pusherAppender) Rollback() error {
87+
func (a *PusherAppender) Rollback() error {
8888
a.labels = nil
8989
a.samples = nil
9090
return nil
@@ -112,7 +112,7 @@ func NewPusherAppendable(pusher Pusher, userID string, limits RulesLimits, total
112112

113113
// Appender returns a storage.Appender
114114
func (t *PusherAppendable) Appender(ctx context.Context) storage.Appender {
115-
return &pusherAppender{
115+
return &PusherAppender{
116116
failedWrites: t.failedWrites,
117117
totalWrites: t.totalWrites,
118118

@@ -131,9 +131,9 @@ type RulesLimits interface {
131131
RulerMaxRulesPerRuleGroup(userID string) int
132132
}
133133

134-
// engineQueryFunc returns a new query function using the rules.EngineQueryFunc function
134+
// EngineQueryFunc returns a new query function using the rules.EngineQueryFunc function
135135
// and passing an altered timestamp.
136-
func engineQueryFunc(engine *promql.Engine, q storage.Queryable, overrides RulesLimits, userID string) rules.QueryFunc {
136+
func EngineQueryFunc(engine *promql.Engine, q storage.Queryable, overrides RulesLimits, userID string) rules.QueryFunc {
137137
return func(ctx context.Context, qs string, t time.Time) (promql.Vector, error) {
138138
orig := rules.EngineQueryFunc(engine, q)
139139
// Delay the evaluation of all rules by a set interval to give a buffer
@@ -143,7 +143,7 @@ func engineQueryFunc(engine *promql.Engine, q storage.Queryable, overrides Rules
143143
}
144144
}
145145

146-
func metricsQueryFunc(qf rules.QueryFunc, queries, failedQueries prometheus.Counter) rules.QueryFunc {
146+
func MetricsQueryFunc(qf rules.QueryFunc, queries, failedQueries prometheus.Counter) rules.QueryFunc {
147147
return func(ctx context.Context, qs string, t time.Time) (promql.Vector, error) {
148148
queries.Inc()
149149

@@ -204,7 +204,7 @@ func DefaultTenantManagerFactory(cfg Config, p Pusher, q storage.Queryable, engi
204204
return rules.NewManager(&rules.ManagerOptions{
205205
Appendable: NewPusherAppendable(p, userID, overrides, totalWrites, failedWrites),
206206
Queryable: q,
207-
QueryFunc: metricsQueryFunc(engineQueryFunc(engine, q, overrides, userID), totalQueries, failedQueries),
207+
QueryFunc: MetricsQueryFunc(EngineQueryFunc(engine, q, overrides, userID), totalQueries, failedQueries),
208208
Context: user.InjectOrgID(ctx, userID),
209209
ExternalURL: cfg.ExternalURL.URL,
210210
NotifyFunc: SendAlerts(notifier, cfg.ExternalURL.URL.String()),

pkg/ruler/compat_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ func TestMetricsQueryFuncErrors(t *testing.T) {
231231
return promql.Vector{}, tc.returnedError
232232
}
233233

234-
qf := metricsQueryFunc(mockFunc, queries, failures)
234+
qf := MetricsQueryFunc(mockFunc, queries, failures)
235235

236236
_, err := qf(context.Background(), "test", time.Now())
237237
require.Equal(t, tc.returnedError, err)

0 commit comments

Comments
 (0)