github.com/netdata/go.d.plugin@v0.58.1/modules/redis/init.go (about) 1 // SPDX-License-Identifier: GPL-3.0-or-later 2 3 package redis 4 5 import ( 6 "errors" 7 8 "github.com/netdata/go.d.plugin/agent/module" 9 "github.com/netdata/go.d.plugin/pkg/tlscfg" 10 11 "github.com/go-redis/redis/v8" 12 ) 13 14 func (r *Redis) validateConfig() error { 15 if r.Address == "" { 16 return errors.New("'address' not set") 17 } 18 return nil 19 } 20 21 func (r *Redis) initRedisClient() (*redis.Client, error) { 22 opts, err := redis.ParseURL(r.Address) 23 if err != nil { 24 return nil, err 25 } 26 27 tlsConfig, err := tlscfg.NewTLSConfig(r.TLSConfig) 28 if err != nil { 29 return nil, err 30 } 31 32 if opts.TLSConfig != nil && tlsConfig != nil { 33 tlsConfig.ServerName = opts.TLSConfig.ServerName 34 } 35 36 if opts.Username == "" && r.Username != "" { 37 opts.Username = r.Username 38 } 39 if opts.Password == "" && r.Password != "" { 40 opts.Password = r.Password 41 } 42 43 opts.PoolSize = 1 44 opts.TLSConfig = tlsConfig 45 opts.DialTimeout = r.Timeout.Duration 46 opts.ReadTimeout = r.Timeout.Duration 47 opts.WriteTimeout = r.Timeout.Duration 48 49 return redis.NewClient(opts), nil 50 } 51 52 func (r *Redis) initCharts() (*module.Charts, error) { 53 return redisCharts.Copy(), nil 54 }