Skip to content

Commit

Permalink
Merge pull request #77 from kubernetes/collector-extraction
Browse files Browse the repository at this point in the history
allow choosing which collectors to run
  • Loading branch information
brancz committed Feb 2, 2017
2 parents cd2b562 + efdfc9a commit ac919d9
Show file tree
Hide file tree
Showing 6 changed files with 240 additions and 124 deletions.
26 changes: 26 additions & 0 deletions daemonset.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@ package main
import (
"github.com/golang/glog"
"github.com/prometheus/client_golang/prometheus"
"golang.org/x/net/context"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/pkg/api"
"k8s.io/client-go/pkg/apis/extensions/v1beta1"
"k8s.io/client-go/tools/cache"
)

var (
Expand All @@ -45,6 +49,28 @@ var (
)
)

type DaemonSetLister func() ([]v1beta1.DaemonSet, error)

func (l DaemonSetLister) List() ([]v1beta1.DaemonSet, error) {
return l()
}

func RegisterDaemonSetCollector(registry prometheus.Registerer, kubeClient kubernetes.Interface) {
client := kubeClient.Extensions().RESTClient()
dslw := cache.NewListWatchFromClient(client, "daemonsets", api.NamespaceAll, nil)
dsinf := cache.NewSharedInformer(dslw, &v1beta1.DaemonSet{}, resyncPeriod)

dsLister := DaemonSetLister(func() (daemonsets []v1beta1.DaemonSet, err error) {
for _, c := range dsinf.GetStore().List() {
daemonsets = append(daemonsets, *(c.(*v1beta1.DaemonSet)))
}
return daemonsets, nil
})

registry.MustRegister(&daemonsetCollector{store: dsLister})
go dsinf.Run(context.Background().Done())
}

type daemonsetStore interface {
List() (daemonsets []v1beta1.DaemonSet, err error)
}
Expand Down
26 changes: 26 additions & 0 deletions deployment.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,12 @@ package main
import (
"github.com/golang/glog"
"github.com/prometheus/client_golang/prometheus"
"golang.org/x/net/context"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/pkg/api"
"k8s.io/client-go/pkg/apis/extensions/v1beta1"
"k8s.io/client-go/pkg/util/intstr"
"k8s.io/client-go/tools/cache"
)

var (
Expand Down Expand Up @@ -76,6 +80,28 @@ var (
)
)

type DeploymentLister func() ([]v1beta1.Deployment, error)

func (l DeploymentLister) List() ([]v1beta1.Deployment, error) {
return l()
}

func RegisterDeploymentCollector(registry prometheus.Registerer, kubeClient kubernetes.Interface) {
client := kubeClient.Extensions().RESTClient()
dlw := cache.NewListWatchFromClient(client, "deployments", api.NamespaceAll, nil)
dinf := cache.NewSharedInformer(dlw, &v1beta1.Deployment{}, resyncPeriod)

dplLister := DeploymentLister(func() (deployments []v1beta1.Deployment, err error) {
for _, c := range dinf.GetStore().List() {
deployments = append(deployments, *(c.(*v1beta1.Deployment)))
}
return deployments, nil
})

registry.MustRegister(&deploymentCollector{store: dplLister})
go dinf.Run(context.Background().Done())
}

type deploymentStore interface {
List() (deployments []v1beta1.Deployment, err error)
}
Expand Down
Loading

0 comments on commit ac919d9

Please sign in to comment.