初始提交:边缘AI算力机统一AI通讯层
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
|
||||
"github.com/edgeai/gateway/internal/config"
|
||||
"github.com/edgeai/gateway/internal/observability"
|
||||
"github.com/edgeai/gateway/internal/server"
|
||||
)
|
||||
|
||||
func main() {
|
||||
configPath := flag.String("config", config.ConfigPath(), "path to config file")
|
||||
flag.Parse()
|
||||
|
||||
// Load configuration
|
||||
cfg, err := config.Load(*configPath)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "failed to load config from %s: %v\n", *configPath, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// Initialize logger
|
||||
observability.SetLogLevel(cfg.Observability.LogLevel)
|
||||
logger := observability.GetLogger()
|
||||
logger.Info("edge ai gateway starting", observability.F().
|
||||
Event("startup").
|
||||
Set("config_path", *configPath).
|
||||
Set("server_port", cfg.Server.Port))
|
||||
|
||||
// Create HTTP server
|
||||
srv, err := server.New(cfg, logger)
|
||||
if err != nil {
|
||||
logger.Error("failed to create server", observability.F().Event("startup_error").Reason(err.Error()))
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// Start server in background
|
||||
go func() {
|
||||
if err := srv.Start(); err != nil {
|
||||
logger.Error("server error", observability.F().Event("server_error").Reason(err.Error()))
|
||||
}
|
||||
}()
|
||||
|
||||
logger.Info("server listening", observability.F().
|
||||
Event("listening").
|
||||
Set("host", cfg.Server.Host).
|
||||
Set("port", cfg.Server.Port))
|
||||
|
||||
// Wait for shutdown signal
|
||||
sigCh := make(chan os.Signal, 1)
|
||||
signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)
|
||||
sig := <-sigCh
|
||||
logger.Info("received shutdown signal", observability.F().Event("shutdown").Set("signal", sig.String()))
|
||||
|
||||
// Graceful shutdown
|
||||
if err := srv.Shutdown(); err != nil {
|
||||
logger.Error("shutdown error", observability.F().Event("shutdown_error").Reason(err.Error()))
|
||||
}
|
||||
logger.Info("server stopped", observability.F().Event("stopped"))
|
||||
}
|
||||
Reference in New Issue
Block a user