From ee040175d15e1d35a17088a251c9918c18f43671 Mon Sep 17 00:00:00 2001 From: sysatom Date: Fri, 28 May 2021 13:56:10 +0800 Subject: [PATCH] fix: agent cmd --- cmd/agent/redis/main.go | 59 +++++++++++++++++++++++++++++ cmd/agent/server/main.go | 53 ++++++++++++++++++++++++++ internal/app/agent/broker/broker.go | 13 ++----- internal/app/agent/broker/redis.go | 2 +- internal/app/agent/broker/server.go | 2 +- 5 files changed, 118 insertions(+), 11 deletions(-) create mode 100644 cmd/agent/redis/main.go create mode 100644 cmd/agent/server/main.go diff --git a/cmd/agent/redis/main.go b/cmd/agent/redis/main.go new file mode 100644 index 00000000..3d934703 --- /dev/null +++ b/cmd/agent/redis/main.go @@ -0,0 +1,59 @@ +package main + +import ( + "github.com/tsundata/assistant/internal/app/agent" + "github.com/tsundata/assistant/internal/app/agent/broker" + "github.com/tsundata/assistant/internal/pkg/app" + "github.com/tsundata/assistant/internal/pkg/config" + "github.com/tsundata/assistant/internal/pkg/influx" + "github.com/tsundata/assistant/internal/pkg/logger" + "github.com/tsundata/assistant/internal/pkg/redis" + "github.com/tsundata/assistant/internal/pkg/vendors/rollbar" +) + +func CreateApp() (*app.Application, error) { + appConfig := config.NewConfig() + + r := rollbar.New(appConfig) + + log := logger.NewLogger(r) + + i, err := influx.New(appConfig) + if err != nil { + return nil, err + } + + rdb, err := redis.New(appConfig) + if err != nil { + return nil, err + } + + br, err := broker.NewBroker(appConfig, log, i) + if err != nil { + return nil, err + } + + b, err := broker.NewRedis(br, rdb) + if err != nil { + return nil, err + } + + application, err := agent.NewApp(appConfig, log, b) + if err != nil { + return nil, err + } + return application, nil +} + +func main() { + a, err := CreateApp() + if err != nil { + panic(err) + } + + if err := a.Start(); err != nil { + panic(err) + } + + a.AwaitSignal() +} diff --git a/cmd/agent/server/main.go b/cmd/agent/server/main.go new file mode 100644 index 00000000..97b5f27b --- /dev/null +++ b/cmd/agent/server/main.go @@ -0,0 +1,53 @@ +package main + +import ( + "github.com/tsundata/assistant/internal/app/agent" + "github.com/tsundata/assistant/internal/app/agent/broker" + "github.com/tsundata/assistant/internal/pkg/app" + "github.com/tsundata/assistant/internal/pkg/config" + "github.com/tsundata/assistant/internal/pkg/influx" + "github.com/tsundata/assistant/internal/pkg/logger" + "github.com/tsundata/assistant/internal/pkg/vendors/rollbar" +) + +func CreateApp() (*app.Application, error) { + appConfig := config.NewConfig() + + r := rollbar.New(appConfig) + + log := logger.NewLogger(r) + + i, err := influx.New(appConfig) + if err != nil { + return nil, err + } + + br, err := broker.NewBroker(appConfig, log, i) + if err != nil { + return nil, err + } + + b, err := broker.NewServer(br) + if err != nil { + return nil, err + } + + application, err := agent.NewApp(appConfig, log, b) + if err != nil { + return nil, err + } + return application, nil +} + +func main() { + a, err := CreateApp() + if err != nil { + panic(err) + } + + if err := a.Start(); err != nil { + panic(err) + } + + a.AwaitSignal() +} diff --git a/internal/app/agent/broker/broker.go b/internal/app/agent/broker/broker.go index ce7216ed..69b7cdb5 100644 --- a/internal/app/agent/broker/broker.go +++ b/internal/app/agent/broker/broker.go @@ -1,29 +1,24 @@ package broker import ( - "errors" influxdb2 "github.com/influxdata/influxdb-client-go/v2" - "github.com/spf13/viper" + "github.com/tsundata/assistant/internal/pkg/config" "github.com/tsundata/assistant/internal/pkg/logger" ) type Broker struct { - Org string - Bucket string + c *config.AppConfig logger *logger.Logger influx influxdb2.Client } -func NewBroker(v *viper.Viper, logger *logger.Logger, influx influxdb2.Client) (*Broker, error) { +func NewBroker(c *config.AppConfig, logger *logger.Logger, influx influxdb2.Client) (*Broker, error) { var err error o := new(Broker) + o.c = c o.logger = logger o.influx = influx - if err = v.UnmarshalKey("influx", o); err != nil { - return nil, errors.New("unmarshal app option error") - } - return o, err } diff --git a/internal/app/agent/broker/redis.go b/internal/app/agent/broker/redis.go index 3b95c5b9..68ba0d75 100644 --- a/internal/app/agent/broker/redis.go +++ b/internal/app/agent/broker/redis.go @@ -25,7 +25,7 @@ func NewRedis(broker *Broker, rdb *redis.Client) (*Redis, error) { func (b *Redis) Run() { t := time.NewTicker(time.Second) - writeAPI := b.broker.influx.WriteAPI(b.broker.Org, b.broker.Bucket) + writeAPI := b.broker.influx.WriteAPI(b.broker.c.Influx.Org, b.broker.c.Influx.Bucket) for range t.C { // server err := writeSection(b, writeAPI, "server") diff --git a/internal/app/agent/broker/server.go b/internal/app/agent/broker/server.go index bba44c16..1deea91a 100644 --- a/internal/app/agent/broker/server.go +++ b/internal/app/agent/broker/server.go @@ -27,7 +27,7 @@ func (b *Server) Run() { b.broker.logger.Error(err) return } - writeAPI := b.broker.influx.WriteAPI(b.broker.Org, b.broker.Bucket) + writeAPI := b.broker.influx.WriteAPI(b.broker.c.Influx.Org, b.broker.c.Influx.Bucket) for range t.C { // mem v, err := mem.VirtualMemory()