Supply volume fs metrics to server/stats/handler.go

* Metrics will not be expose until they are hooked up to a handler
* Metrics are not cached and expose a dos vector, this must be fixed before release or the stats should not be exposed through an api endpoint
This commit is contained in:
Phillip Wittrock
2016-01-14 11:19:26 -08:00
parent 6b20879a7f
commit 3de94cd23c
24 changed files with 2030 additions and 1130 deletions

View File

@@ -33,6 +33,7 @@ import (
"k8s.io/kubernetes/pkg/kubelet/cm"
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
"k8s.io/kubernetes/pkg/types"
"k8s.io/kubernetes/pkg/volume"
)
// Host methods required by stats handlers.
@@ -45,6 +46,8 @@ type StatsProvider interface {
GetNodeConfig() cm.NodeConfig
DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error)
RootFsInfo() (cadvisorapiv2.FsInfo, error)
ListVolumesForPod(podUID types.UID) (map[string]volume.Volume, bool)
GetPods() []*api.Pod
}
type handler struct {
@@ -52,8 +55,8 @@ type handler struct {
summaryProvider SummaryProvider
}
func CreateHandlers(provider StatsProvider) *restful.WebService {
h := &handler{provider, NewSummaryProvider(provider)}
func CreateHandlers(provider StatsProvider, resourceAnalyzer ResourceAnalyzer) *restful.WebService {
h := &handler{provider, NewSummaryProvider(provider, resourceAnalyzer)}
ws := &restful.WebService{}
ws.Path("/stats/").