func main()

in main.go [67:132]


func main() {
	cmd := &ElasticsearchAdapter{}
	cmd.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(generatedopenapi.GetOpenAPIDefinitions, openapinamer.NewDefinitionNamer(apiserver.Scheme))
	cmd.OpenAPIConfig.Info.Title = serviceType
	cmd.OpenAPIConfig.Info.Version = serviceVersion

	logs.AddFlags(cmd.Flags())
	cmd.Flags().BoolVar(&cmd.Insecure, "insecure", false, "if true authentication and authorization are disabled, only to be used in dev mode")
	cmd.Flags().IntVar(&cmd.MonitoringPort, "monitoring-port", 9090, "port to expose readiness and Prometheus metrics")
	cmd.Flags().IntVar(&cmd.ProfilingPort, "profiling-port", 0, "port to expose pprof profiling")
	cmd.Flags().AddGoFlagSet(flag.CommandLine) // make sure we get the klog flags
	err := cmd.Flags().Parse(os.Args)
	if err != nil {
		logErrorAndExit(err, "Unable to parse flags")
	}

	flushLogs := log.Configure(cmd.Flags(), serviceType, serviceVersion)
	defer flushLogs()
	logger = log.ForPackage("main")

	adapterCfg, err := config.Parse()
	if err != nil {
		logErrorAndExit(err, "Unable to parse adapter configuration")
	}

	logger.Info("Starting monitoring server...")
	monitoringServer := monitoring.NewServer(adapterCfg.MetricServers, cmd.MonitoringPort, adapterCfg.ReadinessProbe.FailureThreshold)
	go monitoringServer.Start()

	if cmd.ProfilingPort > 0 {
		logger.Info("Starting profiling server...")
		go profiling.StartProfiling(cmd.ProfilingPort)
	}

	apmTracer, err := apm.NewTracer(serviceType, serviceVersion)
	if err != nil {
		logErrorAndExit(err, "Unable to create APM tracer")
	}
	apmTracer.SetLogger(&tracing.Logger{})

	metricsClients, err := cmd.newMetricsClients(adapterCfg, apmTracer)
	if err != nil {
		logErrorAndExit(err, "Unable to create metrics provider")
	}

	scheduler := scheduler.NewScheduler(metricsClients...)
	metricsRegistry := registry.NewRegistry()
	scheduler.
		WithMetricListeners(monitoringServer, metricsRegistry).
		WithErrorListeners(monitoringServer).
		Start().
		WaitInitialSync()
	aggProvider := provider.NewAggregationProvider(metricsRegistry, apmTracer)

	cmd.WithCustomMetrics(aggProvider)
	cmd.WithExternalMetrics(aggProvider)
	if cmd.Insecure {
		cmd.Authentication = nil
		cmd.Authorization = nil
	}

	logger.Info("Starting elastic k8s metrics adapter...")
	if err := cmd.Run(context.WithoutCancel(context.Background())); err != nil {
		logErrorAndExit(err, "Unable to run elastic k8s metrics adapter")
	}
}