Skip to content

Commit

Permalink
Merge pull request #4612 from tomwilkie/dns-controller-metrics
Browse files Browse the repository at this point in the history
Export kubernetes client metrics from dns-controller.
  • Loading branch information
k8s-ci-robot authored Apr 1, 2018
2 parents c755c12 + f8eaeb9 commit f0fcf07
Show file tree
Hide file tree
Showing 14 changed files with 1,182 additions and 5 deletions.
8 changes: 6 additions & 2 deletions Gopkg.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions dns-controller/cmd/dns-controller/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@ go_library(
"//protokube/pkg/gossip/dns/provider:go_default_library",
"//protokube/pkg/gossip/mesh:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/prometheus/client_golang/prometheus/promhttp:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/k8s.io/client-go/kubernetes:go_default_library",
"//vendor/k8s.io/client-go/rest:go_default_library",
"//vendor/k8s.io/kubernetes/pkg/client/metrics/prometheus:go_default_library",
],
)

Expand Down
12 changes: 11 additions & 1 deletion dns-controller/cmd/dns-controller/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,18 @@ import (
"flag"
"fmt"
"io"
"log"
"net/http"
"os"
"strings"

"github.com/golang/glog"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/spf13/pflag"

"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
_ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration

"k8s.io/kops/dns-controller/pkg/dns"
"k8s.io/kops/dns-controller/pkg/watchers"
Expand All @@ -50,7 +54,7 @@ var (

func main() {
fmt.Printf("dns-controller version %s\n", BuildVersion)
var dnsServer, dnsProviderID, gossipListen, gossipSecret, watchNamespace string
var dnsServer, dnsProviderID, gossipListen, gossipSecret, watchNamespace, metricsListen string
var gossipSeeds, zones []string
var watchIngress bool

Expand All @@ -66,6 +70,7 @@ func main() {
flags.StringVar(&gossipSecret, "gossip-secret", gossipSecret, "Secret to use to secure gossip")
flags.StringVar(&watchNamespace, "watch-namespace", "", "Limits the functionality for pods, services and ingress to specific namespace, by default all")
flag.IntVar(&route53.MaxBatchSize, "route53-batch-size", route53.MaxBatchSize, "Maximum number of operations performed per changeset batch")
flag.StringVar(&metricsListen, "metrics-listen-addr", ":3999", "The address on which to listen for Prometheus metrics.")

// Trick to avoid 'logging before flag.Parse' warning
flag.CommandLine.Parse([]string{})
Expand All @@ -74,6 +79,11 @@ func main() {
flags.AddGoFlagSet(flag.CommandLine)
flags.Parse(os.Args)

go func() {
http.Handle("/metrics", promhttp.Handler())
log.Fatal(http.ListenAndServe(metricsListen, nil))
}()

zoneRules, err := dns.ParseZoneRules(zones)
if err != nil {
glog.Errorf("unexpected zone flags: %q", err)
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit f0fcf07

Please sign in to comment.