mirror of
https://github.com/kubernetes-sigs/prometheus-adapter.git
synced 2026-04-06 01:38:10 +00:00
Tests for periodicMetricLister and resourceConverter.
This commit is contained in:
parent
8854332861
commit
f7c0657115
2 changed files with 107 additions and 0 deletions
Binary file not shown.
107
pkg/custom-provider/resource_converter_test.go
Normal file
107
pkg/custom-provider/resource_converter_test.go
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
package provider
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/prometheus/common/model"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
|
||||
prom "github.com/directxman12/k8s-prometheus-adapter/pkg/client"
|
||||
"github.com/directxman12/k8s-prometheus-adapter/pkg/config"
|
||||
)
|
||||
|
||||
func TestCanCreateLabelFromResource(t *testing.T) {
|
||||
mapper := restMapper()
|
||||
converter, err := NewResourceConverter("kube_<<.Group>>_<<.Resource>>", map[string]config.GroupResource{}, mapper)
|
||||
require.NoError(t, err)
|
||||
|
||||
result, err := converter.LabelForResource(schema.GroupResource{
|
||||
Group: "apps",
|
||||
Resource: "deployment",
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, result)
|
||||
require.Equal(t, model.LabelName("kube_apps_deployment"), result)
|
||||
}
|
||||
|
||||
func TestDetectsResourcesFromLabel(t *testing.T) {
|
||||
mapper := restMapper()
|
||||
converter, err := NewResourceConverter("kube_<<.Group>>_<<.Resource>>", map[string]config.GroupResource{}, mapper)
|
||||
require.NoError(t, err)
|
||||
|
||||
resource, namespaced := converter.ResourcesForSeries(prom.Series{
|
||||
Name: "some_series",
|
||||
Labels: model.LabelSet{
|
||||
"kube_extensions_deployment": "my_deployment",
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []schema.GroupResource{schema.GroupResource{
|
||||
Group: "extensions",
|
||||
Resource: "deployments",
|
||||
}}, resource)
|
||||
require.Equal(t, false, namespaced)
|
||||
}
|
||||
|
||||
func TestDetectsNamespacedFromOverrides(t *testing.T) {
|
||||
mapper := restMapper()
|
||||
converter, err := NewResourceConverter("kube_<<.Group>>_<<.Resource>>", map[string]config.GroupResource{
|
||||
"has_namespace": config.GroupResource{
|
||||
Group: "",
|
||||
Resource: "Namespaces",
|
||||
},
|
||||
}, mapper)
|
||||
require.NoError(t, err)
|
||||
|
||||
resource, namespaced := converter.ResourcesForSeries(prom.Series{
|
||||
Name: "some_series",
|
||||
Labels: model.LabelSet{
|
||||
"kube_extensions_deployment": "my_deployment",
|
||||
"has_namespace": "some_namespace",
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []schema.GroupResource{
|
||||
schema.GroupResource{
|
||||
Group: "extensions",
|
||||
Resource: "deployments",
|
||||
},
|
||||
schema.GroupResource{
|
||||
Group: "",
|
||||
Resource: "namespaces",
|
||||
}}, resource)
|
||||
require.Equal(t, true, namespaced)
|
||||
}
|
||||
|
||||
func TestDetectsNonNamespaceResourcesFromOverrides(t *testing.T) {
|
||||
mapper := restMapper()
|
||||
converter, err := NewResourceConverter("kube_<<.Group>>_<<.Resource>>", map[string]config.GroupResource{
|
||||
"a_special_label": config.GroupResource{
|
||||
Group: "",
|
||||
Resource: "pod",
|
||||
},
|
||||
}, mapper)
|
||||
require.NoError(t, err)
|
||||
|
||||
resource, namespaced := converter.ResourcesForSeries(prom.Series{
|
||||
Name: "some_series",
|
||||
Labels: model.LabelSet{
|
||||
"kube_extensions_deployment": "my_deployment",
|
||||
"a_special_label": "a_special_value",
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []schema.GroupResource{
|
||||
schema.GroupResource{
|
||||
Group: "extensions",
|
||||
Resource: "deployments",
|
||||
},
|
||||
schema.GroupResource{
|
||||
Group: "",
|
||||
Resource: "pods",
|
||||
}}, resource)
|
||||
require.Equal(t, false, namespaced)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue