func NewKubernetesCollector(logger log.Logger, errors *prometheus.CounterVec, client *godo.Client, timeout time.Duration) *KubernetesCollector {
	errors.WithLabelValues("kubernetes").Add(0)
	clusterLabels := []string{"id", "name", "region", "version"}
	nodeLabels := []string{"id", "name", "region"}
	return &KubernetesCollector{
		logger:  logger,
		errors:  errors,
		client:  client,
		timeout: timeout,
		Up: prometheus.NewDesc(
			"digitalocean_kubernetes_cluster_up",
			"If 1 the kubernetes cluster is up and running, 0 otherwise",
			clusterLabels, nil,
		),
		NodePools: prometheus.NewDesc(
			"digitalocean_kubernetes_nodepools_count",
			"Number of Kubernetes nodepools",
			clusterLabels, nil,
		),
		Nodes: prometheus.NewDesc(
			"digitalocean_kubernetes_nodes_count",
			"Number of Kubernetes nodes",
			nodeLabels, nil,
		),
	}
}
NewKubernetesCollector returns a new KubernetesCollector
package collector
import (
	"context"
	"time"
	"github.com/digitalocean/godo"
	"github.com/go-kit/kit/log"
	"github.com/go-kit/kit/log/level"
	"github.com/prometheus/client_golang/prometheus"
)
type KubernetesCollector struct {
	logger  log.Logger
	errors  *prometheus.CounterVec
	client  *godo.Client
	timeout time.Duration
	Up        *prometheus.Desc
	NodePools *prometheus.Desc
	Nodes     *prometheus.Desc
}