summaryrefslogtreecommitdiffstats
path: root/src/go/collectors/go.d.plugin/modules/pika/init.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/go/collectors/go.d.plugin/modules/pika/init.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/go/collectors/go.d.plugin/modules/pika/init.go b/src/go/collectors/go.d.plugin/modules/pika/init.go
new file mode 100644
index 000000000..8cb62aa52
--- /dev/null
+++ b/src/go/collectors/go.d.plugin/modules/pika/init.go
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+package pika
+
+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 (p *Pika) validateConfig() error {
+ if p.Address == "" {
+ return errors.New("'address' not set")
+ }
+ return nil
+}
+
+func (p *Pika) initRedisClient() (*redis.Client, error) {
+ opts, err := redis.ParseURL(p.Address)
+ if err != nil {
+ return nil, err
+ }
+
+ tlsConfig, err := tlscfg.NewTLSConfig(p.TLSConfig)
+ if err != nil {
+ return nil, err
+ }
+
+ if opts.TLSConfig != nil && tlsConfig != nil {
+ tlsConfig.ServerName = opts.TLSConfig.ServerName
+ }
+
+ opts.PoolSize = 1
+ opts.TLSConfig = tlsConfig
+ opts.DialTimeout = p.Timeout.Duration()
+ opts.ReadTimeout = p.Timeout.Duration()
+ opts.WriteTimeout = p.Timeout.Duration()
+
+ return redis.NewClient(opts), nil
+}
+
+func (p *Pika) initCharts() (*module.Charts, error) {
+ return pikaCharts.Copy(), nil
+}