diff options
Diffstat (limited to '')
-rw-r--r-- | src/go/collectors/go.d.plugin/modules/redis/init.go | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/go/collectors/go.d.plugin/modules/redis/init.go b/src/go/collectors/go.d.plugin/modules/redis/init.go new file mode 100644 index 000000000..6fcf4379d --- /dev/null +++ b/src/go/collectors/go.d.plugin/modules/redis/init.go @@ -0,0 +1,54 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +package redis + +import ( + "errors" + + "github.com/netdata/netdata/go/go.d.plugin/agent/module" + "github.com/netdata/netdata/go/go.d.plugin/pkg/tlscfg" + + "github.com/go-redis/redis/v8" +) + +func (r *Redis) validateConfig() error { + if r.Address == "" { + return errors.New("'address' not set") + } + return nil +} + +func (r *Redis) initRedisClient() (*redis.Client, error) { + opts, err := redis.ParseURL(r.Address) + if err != nil { + return nil, err + } + + tlsConfig, err := tlscfg.NewTLSConfig(r.TLSConfig) + if err != nil { + return nil, err + } + + if opts.TLSConfig != nil && tlsConfig != nil { + tlsConfig.ServerName = opts.TLSConfig.ServerName + } + + if opts.Username == "" && r.Username != "" { + opts.Username = r.Username + } + if opts.Password == "" && r.Password != "" { + opts.Password = r.Password + } + + opts.PoolSize = 1 + opts.TLSConfig = tlsConfig + opts.DialTimeout = r.Timeout.Duration() + opts.ReadTimeout = r.Timeout.Duration() + opts.WriteTimeout = r.Timeout.Duration() + + return redis.NewClient(opts), nil +} + +func (r *Redis) initCharts() (*module.Charts, error) { + return redisCharts.Copy(), nil +} |