update for go1.18

This commit is contained in:
ginuerzh
2022-02-25 13:08:05 +08:00
parent 9db7137cd3
commit 0aee4f0ebd
13 changed files with 262 additions and 78 deletions

View File

@ -11,6 +11,7 @@ import (
"github.com/go-gost/gost/pkg/config"
"github.com/go-gost/gost/pkg/metadata"
"github.com/go-gost/gost/pkg/metrics"
"github.com/go-gost/gost/pkg/registry"
)
@ -40,9 +41,8 @@ func buildConfigFromCmd(services, nodes stringList) (*config.Config, error) {
}
if v := os.Getenv("GOST_METRICS"); v != "" {
cfg.Metrics = &config.MetricsConfig{
Addr: v,
Path: "/metrics",
Enable: true,
Addr: v,
Path: metrics.DefaultPath,
}
}

View File

@ -8,6 +8,7 @@ import (
"github.com/go-gost/gost/pkg/config"
"github.com/go-gost/gost/pkg/config/parsing"
"github.com/go-gost/gost/pkg/logger"
"github.com/go-gost/gost/pkg/metrics"
"github.com/go-gost/gost/pkg/registry"
"github.com/go-gost/gost/pkg/service"
)
@ -119,15 +120,22 @@ func logFromConfig(cfg *config.LogConfig) logger.Logger {
return logger.NewLogger(opts...)
}
func buildAPIServer(cfg *config.APIConfig) (*api.Server, error) {
func buildAPIService(cfg *config.APIConfig) (service.Service, error) {
auther := parsing.ParseAutherFromAuth(cfg.Auth)
if cfg.Auther != "" {
auther = registry.Auther().Get(cfg.Auther)
}
return api.NewServer(
return api.NewService(
cfg.Addr,
api.PathPrefixOption(cfg.PathPrefix),
api.AccessLogOption(cfg.AccessLog),
api.AutherOption(auther),
)
}
func buildMetricsService(cfg *config.MetricsConfig) (service.Service, error) {
return metrics.NewService(
cfg.Addr,
metrics.PathOption(cfg.Path),
)
}

View File

@ -10,6 +10,7 @@ import (
"github.com/go-gost/gost/pkg/config"
"github.com/go-gost/gost/pkg/logger"
"github.com/go-gost/gost/pkg/metrics"
)
var (
@ -21,6 +22,7 @@ var (
nodes stringList
debug bool
apiAddr string
metricsAddr string
)
func init() {
@ -32,7 +34,8 @@ func init() {
flag.BoolVar(&printVersion, "V", false, "print version")
flag.StringVar(&outputFormat, "O", "", "output format, one of yaml|json format")
flag.BoolVar(&debug, "D", false, "debug mode")
flag.StringVar(&apiAddr, "api", "", "api server addr")
flag.StringVar(&apiAddr, "api", "", "api service address")
flag.StringVar(&metricsAddr, "metrics", "", "metrics service address")
flag.Parse()
if printVersion {
@ -58,6 +61,12 @@ func main() {
Addr: apiAddr,
}
}
if metricsAddr != "" {
cfg.Metrics = &config.MetricsConfig{
Addr: metricsAddr,
Path: metrics.DefaultPath,
}
}
} else {
if cfgFile != "" {
err = cfg.ReadFile(cfgFile)
@ -92,14 +101,27 @@ func main() {
}
if cfg.API != nil {
s, err := buildAPIServer(cfg.API)
s, err := buildAPIService(cfg.API)
if err != nil {
log.Fatal(err)
}
defer s.Close()
go func() {
log.Info("api server on ", s.Addr())
log.Info("api service on ", s.Addr())
log.Fatal(s.Serve())
}()
}
if cfg.Metrics != nil {
s, err := buildMetricsService(cfg.Metrics)
if err != nil {
log.Fatal(err)
}
defer s.Close()
go func() {
log.Info("metrics service on ", s.Addr())
log.Fatal(s.Serve())
}()
}

View File

@ -1,5 +1,5 @@
package main
const (
version = "3.0.0-alpha.2"
version = "3.0.0-alpha.3"
)