diff --git a/pkg/custom-provider/metric_namer.go b/pkg/custom-provider/metric_namer.go index dd811e43..3369e34a 100644 --- a/pkg/custom-provider/metric_namer.go +++ b/pkg/custom-provider/metric_namer.go @@ -13,9 +13,12 @@ import ( "github.com/directxman12/k8s-prometheus-adapter/pkg/naming" ) -var nsGroupResource = schema.GroupResource{Resource: "namespaces"} -var nodeGroupResource = schema.GroupResource{Resource: "nodes"} -var groupNameSanitizer = strings.NewReplacer(".", "_", "-", "_") +var ( + nsGroupResource = schema.GroupResource{Resource: "namespaces"} + nodeGroupResource = schema.GroupResource{Resource: "nodes"} + pvGroupResource = schema.GroupResource{Resource: "persistentvolumes"} + groupNameSanitizer = strings.NewReplacer(".", "_", "-", "_") +) // MetricNamer knows how to convert Prometheus series names and label names to // metrics API resources, and vice-versa. MetricNamers should be safe to access diff --git a/pkg/custom-provider/series_registry.go b/pkg/custom-provider/series_registry.go index 86f28f7d..d6856b34 100644 --- a/pkg/custom-provider/series_registry.go +++ b/pkg/custom-provider/series_registry.go @@ -99,7 +99,7 @@ func (r *basicSeriesRegistry) SetSeries(newSeriesSlices [][]prom.Series, namers } // namespace metrics aren't counted as namespaced - if resource == nsGroupResource || resource == nodeGroupResource { + if resource == nsGroupResource || resource == nodeGroupResource || resource == pvGroupResource { info.Namespaced = false } diff --git a/pkg/naming/resource_converter.go b/pkg/naming/resource_converter.go index db63b763..5d38e0ef 100644 --- a/pkg/naming/resource_converter.go +++ b/pkg/naming/resource_converter.go @@ -20,6 +20,8 @@ import ( var ( groupNameSanitizer = strings.NewReplacer(".", "_", "-", "_") nsGroupResource = schema.GroupResource{Resource: "namespaces"} + nodeGroupResource = schema.GroupResource{Resource: "nodes"} + pvGroupResource = schema.GroupResource{Resource: "persistentvolumes"} ) // ResourceConverter knows the relationship between Kubernetes group-resources and Prometheus labels, @@ -177,7 +179,7 @@ func (r *resourceConverter) ResourcesForSeries(series prom.Series) ([]schema.Gro } } - if groupRes != nsGroupResource { + if groupRes != nsGroupResource && groupRes != nodeGroupResource && groupRes != pvGroupResource { namespaced = true } }