This is an automated email from the ASF dual-hosted git repository. gaoxingcun pushed a commit to branch reconfiguration_scheduling in repository https://gitbox.apache.org/repos/asf/hertzbeat-collector-go.git
commit e7f23a3b855e80981e84b1cc034ad6dac768c132 Author: yuluo-yx <[email protected]> AuthorDate: Sun Aug 31 23:47:54 2025 +0800 feat: optimize Signed-off-by: yuluo-yx <[email protected]> --- Dockerfile | 1 + pkg/banner/embed.go | 6 +-- pkg/collector/bootstrap.go | 28 ++++++------ pkg/collector/config/config.go | 8 ++-- pkg/collector/{ => extension}/kafka/.keep | 0 pkg/collector/{ => extension}/mongodb/.keep | 0 pkg/collector/{ => extension}/nebulagraph/.keep | 0 pkg/collector/{ => extension}/rocketmq/.keep | 0 pkg/collector/internel/server_test.go | 1 - pkg/collector/{internel => server}/server.go | 4 +- pkg/collector/server/server_test.go | 1 + pkg/types/job/protocol/ssh_protocol.go | 58 +++++++++++++++++++++++++ 12 files changed, 83 insertions(+), 24 deletions(-) diff --git a/Dockerfile b/Dockerfile index e69de29..f19bab6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -0,0 +1 @@ +From golang:1.24-alpine diff --git a/pkg/banner/embed.go b/pkg/banner/embed.go index d0e6c9d..0da67df 100644 --- a/pkg/banner/embed.go +++ b/pkg/banner/embed.go @@ -6,17 +6,17 @@ import ( "strconv" "text/template" - "hertzbeat.apache.org/hertzbeat-collector-go/pkg/collector/internel" + "hertzbeat.apache.org/hertzbeat-collector-go/pkg/collector/server" ) //go:embed banner.txt var EmbedLogo embed.FS type Banner struct { - server *internel.CollectorServer + server *server.CollectorServer } -func New(server *internel.CollectorServer) *Banner { +func New(server *server.CollectorServer) *Banner { return &Banner{server: server} } diff --git a/pkg/collector/bootstrap.go b/pkg/collector/bootstrap.go index fec66c7..999f9fe 100644 --- a/pkg/collector/bootstrap.go +++ b/pkg/collector/bootstrap.go @@ -8,42 +8,42 @@ import ( "hertzbeat.apache.org/hertzbeat-collector-go/pkg/banner" "hertzbeat.apache.org/hertzbeat-collector-go/pkg/collector/config" - "hertzbeat.apache.org/hertzbeat-collector-go/pkg/collector/internel" + "hertzbeat.apache.org/hertzbeat-collector-go/pkg/collector/server" ) func Bootstrap(confPath, version string) error { // Init collector server - server := internel.NewCollectorServer(version) - - server.Logger.Sugar().Debug("测试日志级别") + cs := server.NewCollectorServer(version) // Load HertzBeat collector config - loader := config.New(confPath, server, nil) + loader := config.New(confPath, cs, nil) cfg, err := loader.LoadConfig() if err != nil { - server.Logger.Error(err, "load collector config failed") + cs.Logger.Error(err, "load collector config failed") return err } err = loader.ValidateConfig(cfg) if err != nil { - server.Logger.Error(err, "validate collector config failed") + cs.Logger.Error(err, "validate collector config failed") return err } + // todo: optimize log init eg. dynamic update log level + // render banner - err = banner.New(server).PrintBanner(cfg.Collector.Info.Name, cfg.Collector.Info.Port) + err = banner.New(cs).PrintBanner(cfg.Collector.Info.Name, cfg.Collector.Info.Port) if err != nil { - server.Logger.Error(err, "print banner failed") + cs.Logger.Error(err, "print banner failed") return err } // Load collector job // check collector server - err = server.Validate() + err = cs.Validate() if err != nil { - server.Logger.Error(err, "validate collector server failed") + cs.Logger.Error(err, "validate collector server failed") return err } @@ -58,14 +58,14 @@ func Bootstrap(confPath, version string) error { cancel() }() - err = server.Start(ctx) + err = cs.Start(ctx) if err != nil { - server.Logger.Error(err, "start collector server failed") + cs.Logger.Error(err, "start collector server failed") return err } // shutdown collector server - _ = server.Close() + _ = cs.Close() return nil } diff --git a/pkg/collector/config/config.go b/pkg/collector/config/config.go index 1a1c41b..7b1270d 100644 --- a/pkg/collector/config/config.go +++ b/pkg/collector/config/config.go @@ -6,8 +6,8 @@ import ( "os" "gopkg.in/yaml.v3" + "hertzbeat.apache.org/hertzbeat-collector-go/pkg/collector/server" - "hertzbeat.apache.org/hertzbeat-collector-go/pkg/collector/internel" "hertzbeat.apache.org/hertzbeat-collector-go/pkg/logger" "hertzbeat.apache.org/hertzbeat-collector-go/pkg/types" ) @@ -16,13 +16,13 @@ const ( DefaultHertzBeatCollectorName = "hertzbeat-collector" ) -type HookFunc func(c context.Context, server *internel.CollectorServer) error +type HookFunc func(c context.Context, server *server.CollectorServer) error type Loader struct { cfgPath string logger logger.Logger cancel context.CancelFunc - server *internel.CollectorServer + server *server.CollectorServer hook HookFunc @@ -30,7 +30,7 @@ type Loader struct { // watcher *fsnotify.Watcher } -func New(cfgPath string, server *internel.CollectorServer, f HookFunc) *Loader { +func New(cfgPath string, server *server.CollectorServer, f HookFunc) *Loader { return &Loader{ cfgPath: cfgPath, diff --git a/pkg/collector/kafka/.keep b/pkg/collector/extension/kafka/.keep similarity index 100% rename from pkg/collector/kafka/.keep rename to pkg/collector/extension/kafka/.keep diff --git a/pkg/collector/mongodb/.keep b/pkg/collector/extension/mongodb/.keep similarity index 100% rename from pkg/collector/mongodb/.keep rename to pkg/collector/extension/mongodb/.keep diff --git a/pkg/collector/nebulagraph/.keep b/pkg/collector/extension/nebulagraph/.keep similarity index 100% rename from pkg/collector/nebulagraph/.keep rename to pkg/collector/extension/nebulagraph/.keep diff --git a/pkg/collector/rocketmq/.keep b/pkg/collector/extension/rocketmq/.keep similarity index 100% rename from pkg/collector/rocketmq/.keep rename to pkg/collector/extension/rocketmq/.keep diff --git a/pkg/collector/internel/server_test.go b/pkg/collector/internel/server_test.go deleted file mode 100644 index 65287b2..0000000 --- a/pkg/collector/internel/server_test.go +++ /dev/null @@ -1 +0,0 @@ -package internel diff --git a/pkg/collector/internel/server.go b/pkg/collector/server/server.go similarity index 94% rename from pkg/collector/internel/server.go rename to pkg/collector/server/server.go index b921d3e..d1f0de7 100644 --- a/pkg/collector/internel/server.go +++ b/pkg/collector/server/server.go @@ -1,4 +1,4 @@ -package internel +package server import ( "context" @@ -36,7 +36,7 @@ func NewCollectorServer(version string) *CollectorServer { return &CollectorServer{ Version: version, - Logger: logger.DefaultLogger(os.Stdout, types.LogLevelInfo), + Logger: logger.DefaultLogger(os.Stdout, types.LogLevelDebug), } } diff --git a/pkg/collector/server/server_test.go b/pkg/collector/server/server_test.go new file mode 100644 index 0000000..abb4e43 --- /dev/null +++ b/pkg/collector/server/server_test.go @@ -0,0 +1 @@ +package server diff --git a/pkg/types/job/protocol/ssh_protocol.go b/pkg/types/job/protocol/ssh_protocol.go new file mode 100644 index 0000000..b627549 --- /dev/null +++ b/pkg/types/job/protocol/ssh_protocol.go @@ -0,0 +1,58 @@ +package protocol + +type SshProtocol struct { + Host string + Port string + Timeout string + Username string + Password string + PrivateKey string + PrivateKeyPassphrase string + ReuseConnection string + Script string + ParseType string + ProxyHost string + ProxyPort string + ProxyUsername string + ProxyPassword string + UseProxy string + ProxyPrivateKey string +} + +type SshProtocolConfigOptFunc func(option *SshProtocol) + +func NewSshProtocol(host, port string, opts ...SshProtocolConfigOptFunc) *SshProtocol { + + option := &SshProtocol{ + Host: host, + Port: port, + } + + for _, opt := range opts { + opt(option) + } + + return &SshProtocol{ + Host: host, + Port: port, + Timeout: option.Timeout, + Username: option.Username, + Password: option.Password, + PrivateKey: option.PrivateKey, + PrivateKeyPassphrase: option.PrivateKeyPassphrase, + ReuseConnection: option.ReuseConnection, + Script: option.Script, + ParseType: option.ParseType, + ProxyHost: option.ProxyHost, + ProxyPort: option.ProxyPort, + ProxyUsername: option.ProxyUsername, + ProxyPassword: option.ProxyPassword, + UseProxy: option.UseProxy, + ProxyPrivateKey: option.ProxyPrivateKey, + } +} + +func (sp *SshProtocol) IsInvalid() error { + + return nil +} --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
