func main()

in forwarder/main.go [47:85]


func main() {
	project := os.Getenv("BT_PROJECT")
	instance := os.Getenv("BT_INSTANCE")
	if project == "" || instance == "" {
		log.Fatalf("either of environment variables BT_PROJECT or BT_INSTANCE is empty.")
	}

	ctx := context.Background()
	var err error
	bt, err = bigtable.NewClient(ctx, project, instance)
	defer func() {
		if err := bt.Close(); err != nil {
			log.Fatalf("failed to close Cloud BigTable client: %v", err)
		}
	}()
	if err != nil {
		log.Fatalf("failed to create BigTable client: %v", err)
	}

	go reportWriter(ctx, reportCh)

	e := echo.New()
	e.Debug = true
	e.HideBanner = true
	e.HidePort = true
	// In order to handle Reporting API, the reporting endpoint needs to handle CORS
	e.Use(middleware.CORSWithConfig(middleware.DefaultCORSConfig))
	e.POST("/main", mainHandler)
	e.POST("/default", mainHandler)
	e.GET("/_healthz", healthzHandler)

	port := os.Getenv("PORT")
	if port == "" {
		port = "8080"
	}
	if err := e.Start(":" + port); err != nil {
		log.Fatalf("failure occurred on launching HTTP server: %v", err)
	}
}