mirror of
https://github.com/kubernetes-sigs/prometheus-adapter.git
synced 2026-04-06 09:47:54 +00:00
vendor dependencies
This commit is contained in:
parent
604208ef4f
commit
72abf135d6
1156 changed files with 78178 additions and 105799 deletions
|
|
@ -127,7 +127,16 @@ func (ch *CMHandlers) registerResourceHandlers(a *MetricsAPIInstaller, ws *restf
|
|||
},
|
||||
}
|
||||
|
||||
rootScopedHandler := metrics.InstrumentRouteFunc("LIST", "custom-metrics", "", "cluster", restfulListResource(lister, nil, reqScope, false, a.minRequestTimeout))
|
||||
rootScopedHandler := metrics.InstrumentRouteFunc(
|
||||
"LIST",
|
||||
a.group.GroupVersion.Group,
|
||||
a.group.GroupVersion.Version,
|
||||
reqScope.Resource.Resource,
|
||||
reqScope.Subresource,
|
||||
"cluster",
|
||||
"custom-metrics",
|
||||
restfulListResource(lister, nil, reqScope, false, a.minRequestTimeout),
|
||||
)
|
||||
|
||||
// install the root-scoped route
|
||||
rootScopedRoute := ws.GET(rootScopedPath).To(rootScopedHandler).
|
||||
|
|
@ -151,7 +160,17 @@ func (ch *CMHandlers) registerResourceHandlers(a *MetricsAPIInstaller, ws *restf
|
|||
SelfLinkPathPrefix: gpath.Join(a.prefix, "namespaces") + "/",
|
||||
},
|
||||
}
|
||||
namespacedHandler := metrics.InstrumentRouteFunc("LIST", "custom-metrics-namespaced", "", "namespace", restfulListResource(lister, nil, reqScope, false, a.minRequestTimeout))
|
||||
namespacedHandler := metrics.InstrumentRouteFunc(
|
||||
"LIST",
|
||||
a.group.GroupVersion.Group,
|
||||
a.group.GroupVersion.Version,
|
||||
reqScope.Resource.Resource,
|
||||
reqScope.Subresource,
|
||||
"resource",
|
||||
"custom-metrics",
|
||||
restfulListResource(lister, nil, reqScope, false, a.minRequestTimeout),
|
||||
)
|
||||
|
||||
namespacedRoute := ws.GET(namespacedPath).To(namespacedHandler).
|
||||
Doc(doc).
|
||||
Param(ws.QueryParameter("pretty", "If 'true', then the output is pretty printed.")).
|
||||
|
|
@ -173,7 +192,18 @@ func (ch *CMHandlers) registerResourceHandlers(a *MetricsAPIInstaller, ws *restf
|
|||
SelfLinkPathPrefix: gpath.Join(a.prefix, "namespaces") + "/",
|
||||
},
|
||||
}
|
||||
namespaceSpecificHandler := metrics.InstrumentRouteFunc("LIST", "custom-metrics-for-namespace", "", "cluster", restfulListResource(lister, nil, reqScope, false, a.minRequestTimeout))
|
||||
|
||||
namespaceSpecificHandler := metrics.InstrumentRouteFunc(
|
||||
"LIST",
|
||||
a.group.GroupVersion.Group,
|
||||
a.group.GroupVersion.Version,
|
||||
reqScope.Resource.Resource,
|
||||
reqScope.Subresource,
|
||||
"resource",
|
||||
"custom-metrics",
|
||||
restfulListResource(lister, nil, reqScope, false, a.minRequestTimeout),
|
||||
)
|
||||
|
||||
namespaceSpecificRoute := ws.GET(namespaceSpecificPath).To(namespaceSpecificHandler).
|
||||
Doc(doc).
|
||||
Param(ws.QueryParameter("pretty", "If 'true', then the output is pretty printed.")).
|
||||
|
|
|
|||
|
|
@ -106,7 +106,16 @@ func (ch *EMHandlers) registerResourceHandlers(a *MetricsAPIInstaller, ws *restf
|
|||
},
|
||||
}
|
||||
|
||||
externalMetricHandler := metrics.InstrumentRouteFunc("LIST", "external-metrics", "", "", restfulListResource(lister, nil, reqScope, false, a.minRequestTimeout))
|
||||
externalMetricHandler := metrics.InstrumentRouteFunc(
|
||||
"LIST",
|
||||
a.group.GroupVersion.Group,
|
||||
a.group.GroupVersion.Version,
|
||||
reqScope.Resource.Resource,
|
||||
reqScope.Subresource,
|
||||
"cluster",
|
||||
"external-metrics",
|
||||
restfulListResource(lister, nil, reqScope, false, a.minRequestTimeout),
|
||||
)
|
||||
|
||||
externalMetricRoute := ws.GET(externalMetricPath).To(externalMetricHandler).
|
||||
Doc(doc).
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ type CustomMetricsAdapterServerOptions struct {
|
|||
|
||||
func NewCustomMetricsAdapterServerOptions() *CustomMetricsAdapterServerOptions {
|
||||
o := &CustomMetricsAdapterServerOptions{
|
||||
SecureServing: genericoptions.WithLoopback(genericoptions.NewSecureServingOptions()),
|
||||
SecureServing: genericoptions.NewSecureServingOptions().WithLoopback(),
|
||||
Authentication: genericoptions.NewDelegatingAuthenticationOptions(),
|
||||
Authorization: genericoptions.NewDelegatingAuthorizationOptions(),
|
||||
Features: genericoptions.NewFeatureOptions(),
|
||||
|
|
@ -59,11 +59,11 @@ func (o CustomMetricsAdapterServerOptions) Config() (*apiserver.Config, error) {
|
|||
}
|
||||
|
||||
serverConfig := genericapiserver.NewConfig(apiserver.Codecs)
|
||||
if err := o.SecureServing.ApplyTo(serverConfig); err != nil {
|
||||
if err := o.SecureServing.ApplyTo(&serverConfig.SecureServing, &serverConfig.LoopbackClientConfig); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err := o.Authentication.ApplyTo(&serverConfig.Authentication, serverConfig.SecureServing, nil); err != nil {
|
||||
if err := o.Authentication.ApplyTo(&serverConfig.Authentication, serverConfig.SecureServing, serverConfig.OpenAPIConfig); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := o.Authorization.ApplyTo(&serverConfig.Authorization); err != nil {
|
||||
|
|
|
|||
|
|
@ -19,10 +19,10 @@ package dynamicmapper
|
|||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/emicklei/go-restful-swagger12"
|
||||
"github.com/googleapis/gnostic/OpenAPIv2"
|
||||
swagger "github.com/emicklei/go-restful-swagger12"
|
||||
openapi_v2 "github.com/googleapis/gnostic/OpenAPIv2"
|
||||
|
||||
"k8s.io/api/core/v1"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/version"
|
||||
|
|
@ -61,6 +61,24 @@ func (c *FakeDiscovery) ServerResources() ([]*metav1.APIResourceList, error) {
|
|||
return c.Resources, nil
|
||||
}
|
||||
|
||||
func (c *FakeDiscovery) ServerGroupsAndResources() ([]*metav1.APIGroup, []*metav1.APIResourceList, error) {
|
||||
sgs, err := c.ServerGroups()
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
resultGroups := []*metav1.APIGroup{}
|
||||
for i := range sgs.Groups {
|
||||
resultGroups = append(resultGroups, &sgs.Groups[i])
|
||||
}
|
||||
|
||||
action := testing.ActionImpl{
|
||||
Verb: "get",
|
||||
Resource: schema.GroupVersionResource{Resource: "resource"},
|
||||
}
|
||||
c.Invokes(action, nil)
|
||||
return resultGroups, c.Resources, nil
|
||||
}
|
||||
|
||||
func (c *FakeDiscovery) ServerPreferredResources() ([]*metav1.APIResourceList, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,13 +5,12 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/golang/glog"
|
||||
|
||||
"k8s.io/apimachinery/pkg/api/meta"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
"k8s.io/client-go/discovery"
|
||||
"k8s.io/client-go/restmapper"
|
||||
"k8s.io/klog"
|
||||
)
|
||||
|
||||
// RengeneratingDiscoveryRESTMapper is a RESTMapper which Regenerates its cache of mappings periodically.
|
||||
|
|
@ -44,7 +43,7 @@ func NewRESTMapper(discoveryClient discovery.DiscoveryInterface, refreshInterval
|
|||
func (m *RegeneratingDiscoveryRESTMapper) RunUntil(stop <-chan struct{}) {
|
||||
go wait.Until(func() {
|
||||
if err := m.RegenerateMappings(); err != nil {
|
||||
glog.Errorf("error regenerating REST mappings from discovery: %v", err)
|
||||
klog.Errorf("error regenerating REST mappings from discovery: %v", err)
|
||||
}
|
||||
}, m.refreshInterval, stop)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,10 +19,8 @@ import (
|
|||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/golang/glog"
|
||||
|
||||
"github.com/kubernetes-incubator/metrics-server/pkg/provider"
|
||||
"k8s.io/api/core/v1"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
|
@ -31,6 +29,7 @@ import (
|
|||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apiserver/pkg/registry/rest"
|
||||
v1listers "k8s.io/client-go/listers/core/v1"
|
||||
"k8s.io/klog"
|
||||
"k8s.io/metrics/pkg/apis/metrics"
|
||||
_ "k8s.io/metrics/pkg/apis/metrics/install"
|
||||
)
|
||||
|
|
@ -84,7 +83,7 @@ func (m *MetricStorage) List(ctx context.Context, options *metainternalversion.L
|
|||
})
|
||||
if err != nil {
|
||||
errMsg := fmt.Errorf("Error while listing nodes for selector %v: %v", labelSelector, err)
|
||||
glog.Error(errMsg)
|
||||
klog.Error(errMsg)
|
||||
return &metrics.NodeMetricsList{}, errMsg
|
||||
}
|
||||
|
||||
|
|
@ -96,7 +95,7 @@ func (m *MetricStorage) List(ctx context.Context, options *metainternalversion.L
|
|||
metricsItems, err := m.getNodeMetrics(names...)
|
||||
if err != nil {
|
||||
errMsg := fmt.Errorf("Error while fetching node metrics for selector %v: %v", labelSelector, err)
|
||||
glog.Error(errMsg)
|
||||
klog.Error(errMsg)
|
||||
return &metrics.NodeMetricsList{}, errMsg
|
||||
}
|
||||
|
||||
|
|
@ -109,7 +108,7 @@ func (m *MetricStorage) Get(ctx context.Context, name string, opts *metav1.GetOp
|
|||
err = fmt.Errorf("no metrics known for node %q", name)
|
||||
}
|
||||
if err != nil {
|
||||
glog.Errorf("unable to fetch node metrics for node %q: %v", name, err)
|
||||
klog.Errorf("unable to fetch node metrics for node %q: %v", name, err)
|
||||
return nil, errors.NewNotFound(m.groupResource, name)
|
||||
}
|
||||
|
||||
|
|
@ -126,7 +125,7 @@ func (m *MetricStorage) getNodeMetrics(names ...string) ([]metrics.NodeMetrics,
|
|||
|
||||
for i, name := range names {
|
||||
if usages[i] == nil {
|
||||
glog.Errorf("unable to fetch node metrics for node %q: no metrics known for node", name)
|
||||
klog.Errorf("unable to fetch node metrics for node %q: no metrics known for node", name)
|
||||
|
||||
continue
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,10 +19,8 @@ import (
|
|||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/golang/glog"
|
||||
|
||||
"github.com/kubernetes-incubator/metrics-server/pkg/provider"
|
||||
"k8s.io/api/core/v1"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
|
@ -33,6 +31,7 @@ import (
|
|||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||
"k8s.io/apiserver/pkg/registry/rest"
|
||||
v1listers "k8s.io/client-go/listers/core/v1"
|
||||
"k8s.io/klog"
|
||||
"k8s.io/metrics/pkg/apis/metrics"
|
||||
_ "k8s.io/metrics/pkg/apis/metrics/install"
|
||||
)
|
||||
|
|
@ -81,14 +80,14 @@ func (m *MetricStorage) List(ctx context.Context, options *metainternalversion.L
|
|||
pods, err := m.podLister.Pods(namespace).List(labelSelector)
|
||||
if err != nil {
|
||||
errMsg := fmt.Errorf("Error while listing pods for selector %v in namespace %q: %v", labelSelector, namespace, err)
|
||||
glog.Error(errMsg)
|
||||
klog.Error(errMsg)
|
||||
return &metrics.PodMetricsList{}, errMsg
|
||||
}
|
||||
|
||||
metricsItems, err := m.getPodMetrics(pods...)
|
||||
if err != nil {
|
||||
errMsg := fmt.Errorf("Error while fetching pod metrics for selector %v in namespace %q: %v", labelSelector, namespace, err)
|
||||
glog.Error(errMsg)
|
||||
klog.Error(errMsg)
|
||||
return &metrics.PodMetricsList{}, errMsg
|
||||
}
|
||||
|
||||
|
|
@ -102,7 +101,7 @@ func (m *MetricStorage) Get(ctx context.Context, name string, opts *metav1.GetOp
|
|||
pod, err := m.podLister.Pods(namespace).Get(name)
|
||||
if err != nil {
|
||||
errMsg := fmt.Errorf("Error while getting pod %v: %v", name, err)
|
||||
glog.Error(errMsg)
|
||||
klog.Error(errMsg)
|
||||
if errors.IsNotFound(err) {
|
||||
// return not-found errors directly
|
||||
return &metrics.PodMetrics{}, err
|
||||
|
|
@ -118,7 +117,7 @@ func (m *MetricStorage) Get(ctx context.Context, name string, opts *metav1.GetOp
|
|||
err = fmt.Errorf("no metrics known for pod \"%s/%s\"", pod.Namespace, pod.Name)
|
||||
}
|
||||
if err != nil {
|
||||
glog.Errorf("unable to fetch pod metrics for pod %s/%s: %v", pod.Namespace, pod.Name, err)
|
||||
klog.Errorf("unable to fetch pod metrics for pod %s/%s: %v", pod.Namespace, pod.Name, err)
|
||||
return nil, errors.NewNotFound(m.groupResource, fmt.Sprintf("%v/%v", namespace, name))
|
||||
}
|
||||
return &podMetrics[0], nil
|
||||
|
|
@ -140,8 +139,12 @@ func (m *MetricStorage) getPodMetrics(pods ...*v1.Pod) ([]metrics.PodMetrics, er
|
|||
res := make([]metrics.PodMetrics, 0, len(pods))
|
||||
|
||||
for i, pod := range pods {
|
||||
if pod.Status.Phase != v1.PodRunning {
|
||||
// ignore pod not in Running phase
|
||||
continue
|
||||
}
|
||||
if containerMetrics[i] == nil {
|
||||
glog.Errorf("unable to fetch pod metrics for pod %s/%s: no metrics known for pod", pod.Namespace, pod.Name)
|
||||
klog.Errorf("unable to fetch pod metrics for pod %s/%s: no metrics known for pod", pod.Namespace, pod.Name)
|
||||
continue
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue