in event-exporter/main.go [80:113]
func main() {
flag.Set("logtostderr", "true")
defer glog.Flush()
flag.Parse()
client, err := newKubernetesClient()
if err != nil {
glog.Fatalf("Failed to initialize kubernetes client: %v", err)
}
var podLabelCollector podlabels.PodLabelCollector = nil
if *enablePodOwnerLabel {
podLabelCollector, err = podlabels.NewCollector(client, strings.Split(*systemNamespaces, ","), *podCacheSize, *emptyLabelPodCacheSize, *emptyLabelPodCacheTTL, *getPodTimeout)
if err != nil {
glog.Fatalf("Failed to initialize pod label collector: %v", err)
}
}
sink, err := stackdriver.NewSdSinkFactory().CreateNew(strings.Split(*sinkOpts, " "), podLabelCollector)
if err != nil {
glog.Fatalf("Failed to initialize sink: %v", err)
}
eventExporter := newEventExporter(client, sink, *resyncPeriod)
// Expose the Prometheus http endpoint
go func() {
http.Handle("/metrics", promhttp.Handler())
glog.Fatalf("Prometheus monitoring failed: %v", http.ListenAndServe(*prometheusEndpoint, nil))
}()
stopCh := newSystemStopChannel()
eventExporter.Run(stopCh)
}