diff --git a/rules/manager.go b/rules/manager.go index befcaa2f7..9462fb21f 100644 --- a/rules/manager.go +++ b/rules/manager.go @@ -73,6 +73,20 @@ func init() { prometheus.MustRegister(evalDuration) } +// A Rule encapsulates a vector expression which is evaluated at a specified +// interval and acted upon (currently either recorded or used for alerting). +type Rule interface { + // Name returns the name of the rule. + Name() string + // Eval evaluates the rule, including any associated recording or alerting actions. + eval(clientmodel.Timestamp, *promql.Engine) (promql.Vector, error) + // String returns a human-readable string representation of the rule. + String() string + // HTMLSnippet returns a human-readable string representation of the rule, + // decorated with HTML elements for use the web frontend. + HTMLSnippet(pathPrefix string) template.HTML +} + // The Manager manages recording and alerting rules. type Manager struct { // Protects the rules list. diff --git a/rules/rules_test.go b/rules/manager_test.go similarity index 100% rename from rules/rules_test.go rename to rules/manager_test.go diff --git a/rules/rules.go b/rules/rules.go deleted file mode 100644 index 5d3a9cc6d..000000000 --- a/rules/rules.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2013 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package rules - -import ( - "html/template" - - clientmodel "github.com/prometheus/client_golang/model" - - "github.com/prometheus/prometheus/promql" -) - -// A Rule encapsulates a vector expression which is evaluated at a specified -// interval and acted upon (currently either recorded or used for alerting). -type Rule interface { - // Name returns the name of the rule. - Name() string - // Eval evaluates the rule, including any associated recording or alerting actions. - eval(clientmodel.Timestamp, *promql.Engine) (promql.Vector, error) - // String returns a human-readable string representation of the rule. - String() string - // HTMLSnippet returns a human-readable string representation of the rule, - // decorated with HTML elements for use the web frontend. - HTMLSnippet(pathPrefix string) template.HTML -}