mirror of
https://github.com/kubernetes-sigs/prometheus-adapter.git
synced 2026-04-06 17:57:51 +00:00
* 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.
64 lines
2.2 KiB
Go
64 lines
2.2 KiB
Go
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.
|