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]

Reply via email to