mirror of
https://github.com/prometheus/prometheus.git
synced 2025-03-05 20:59:13 -08:00
Added more test cases to TestDependenciesEdgeCases
Signed-off-by: Marco Pracucci <marco@pracucci.com>
This commit is contained in:
parent
52bc568d04
commit
2764c46531
|
@ -1589,6 +1589,50 @@ func TestDependenciesEdgeCases(t *testing.T) {
|
|||
require.False(t, depMap.isIndependent(rule1))
|
||||
require.False(t, depMap.isIndependent(rule2))
|
||||
})
|
||||
|
||||
t.Run("rule querying ALERTS metric", func(t *testing.T) {
|
||||
expr, err := parser.ParseExpr("sum(requests)")
|
||||
require.NoError(t, err)
|
||||
rule1 := NewRecordingRule("first", expr, labels.Labels{})
|
||||
|
||||
expr, err = parser.ParseExpr(`sum(ALERTS{alertname="test"})`)
|
||||
require.NoError(t, err)
|
||||
rule2 := NewRecordingRule("second", expr, labels.Labels{})
|
||||
|
||||
group := NewGroup(GroupOptions{
|
||||
Name: "rule_group",
|
||||
Interval: time.Second,
|
||||
Rules: []Rule{rule1, rule2},
|
||||
Opts: opts,
|
||||
})
|
||||
|
||||
depMap := buildDependencyMap(group.rules)
|
||||
// A rule querying ALERTS metric causes the whole group to be indeterminate.
|
||||
require.False(t, depMap.isIndependent(rule1))
|
||||
require.False(t, depMap.isIndependent(rule2))
|
||||
})
|
||||
|
||||
t.Run("rule querying ALERTS_FOR_STATE metric", func(t *testing.T) {
|
||||
expr, err := parser.ParseExpr("sum(requests)")
|
||||
require.NoError(t, err)
|
||||
rule1 := NewRecordingRule("first", expr, labels.Labels{})
|
||||
|
||||
expr, err = parser.ParseExpr(`sum(ALERTS_FOR_STATE{alertname="test"})`)
|
||||
require.NoError(t, err)
|
||||
rule2 := NewRecordingRule("second", expr, labels.Labels{})
|
||||
|
||||
group := NewGroup(GroupOptions{
|
||||
Name: "rule_group",
|
||||
Interval: time.Second,
|
||||
Rules: []Rule{rule1, rule2},
|
||||
Opts: opts,
|
||||
})
|
||||
|
||||
depMap := buildDependencyMap(group.rules)
|
||||
// A rule querying ALERTS_FOR_STATE metric causes the whole group to be indeterminate.
|
||||
require.False(t, depMap.isIndependent(rule1))
|
||||
require.False(t, depMap.isIndependent(rule2))
|
||||
})
|
||||
}
|
||||
|
||||
func TestNoMetricSelector(t *testing.T) {
|
||||
|
|
Loading…
Reference in a new issue