func main()

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)
}