mirror of
https://github.com/kubernetes-sigs/prometheus-adapter.git
synced 2026-04-06 09:47:54 +00:00
Breaking down some more components, adding tests.
* Some bug fixes found during testing/test repair. * Trying to tease apart the various responsibilities of `metricNamer` into smaller chunks and adding tests for each individual chunk. * Updating the `provider_test` and `series_registry_test` to fix failures.
This commit is contained in:
parent
76217a552b
commit
fc88e6e57a
18 changed files with 1038 additions and 516 deletions
64
pkg/custom-provider/query_builder_test.go
Normal file
64
pkg/custom-provider/query_builder_test.go
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
package provider
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/directxman12/k8s-prometheus-adapter/pkg/client"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestSimpleQuery(t *testing.T) {
|
||||
builder, _ := NewQueryBuilder("rate(<<.Series>>{<<.LabelMatchers>>}[2m])")
|
||||
|
||||
// builder, _ := NewQueryBuilder("sum(rate(<<.Series>>{<<.LabelMatchers>>,static_label!=\"static_value\"}[2m])) by (<<.GroupBy>>)")
|
||||
selector, _ := builder.BuildSelector("my_series", "", []string{}, []queryPart{})
|
||||
|
||||
expectation := client.Selector("rate(my_series{}[2m])")
|
||||
require.Equal(t, selector, expectation)
|
||||
}
|
||||
|
||||
func TestSimpleQueryWithOneLabelValue(t *testing.T) {
|
||||
builder, _ := NewQueryBuilder("rate(<<.Series>>{<<.LabelMatchers>>}[2m])")
|
||||
|
||||
// builder, _ := NewQueryBuilder("sum(rate(<<.Series>>{<<.LabelMatchers>>,static_label!=\"static_value\"}[2m])) by (<<.GroupBy>>)")
|
||||
selector, _ := builder.BuildSelector("my_series", "", []string{}, []queryPart{
|
||||
queryPart{
|
||||
labelName: "target_label",
|
||||
values: []string{"one"},
|
||||
},
|
||||
})
|
||||
|
||||
expectation := client.Selector("rate(my_series{target_label=\"one\"}[2m])")
|
||||
require.Equal(t, selector, expectation)
|
||||
}
|
||||
|
||||
func TestSimpleQueryWithMultipleLabelValues(t *testing.T) {
|
||||
builder, _ := NewQueryBuilder("rate(<<.Series>>{<<.LabelMatchers>>}[2m])")
|
||||
|
||||
// builder, _ := NewQueryBuilder("sum(rate(<<.Series>>{<<.LabelMatchers>>,static_label!=\"static_value\"}[2m])) by (<<.GroupBy>>)")
|
||||
selector, _ := builder.BuildSelector("my_series", "", []string{}, []queryPart{
|
||||
queryPart{
|
||||
labelName: "target_label",
|
||||
values: []string{"one", "two"},
|
||||
},
|
||||
})
|
||||
|
||||
expectation := client.Selector("rate(my_series{target_label=~\"one|two\"}[2m])")
|
||||
require.Equal(t, selector, expectation)
|
||||
}
|
||||
|
||||
func TestQueryWithGroupBy(t *testing.T) {
|
||||
builder, _ := NewQueryBuilder("sum(rate(<<.Series>>{<<.LabelMatchers>>}[2m])) by (<<.GroupBy>>)")
|
||||
|
||||
selector, _ := builder.BuildSelector("my_series", "my_grouping", []string{}, []queryPart{
|
||||
queryPart{
|
||||
labelName: "target_label",
|
||||
values: []string{"one", "two"},
|
||||
},
|
||||
})
|
||||
|
||||
expectation := client.Selector("sum(rate(my_series{target_label=~\"one|two\"}[2m])) by (my_grouping)")
|
||||
require.Equal(t, selector, expectation)
|
||||
}
|
||||
|
||||
//TODO: Ensure that the LabelValuesByName and GroupBySlice placeholders function correctly.
|
||||
Loading…
Add table
Add a link
Reference in a new issue