master
go 47 lines 1009 Bytes
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package pika
4
5 import (
6 "errors"
7
8 "github.com/redis/go-redis/v9"
9
10 "github.com/netdata/netdata/go/plugins/pkg/tlscfg"
11 "github.com/netdata/netdata/go/plugins/plugin/framework/collectorapi"
12 )
13
14 func (c *Collector) validateConfig() error {
15 if c.Address == "" {
16 return errors.New("'address' not set")
17 }
18 return nil
19 }
20
21 func (c *Collector) initRedisClient() (*redis.Client, error) {
22 opts, err := redis.ParseURL(c.Address)
23 if err != nil {
24 return nil, err
25 }
26
27 tlsConfig, err := tlscfg.NewTLSConfig(c.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 opts.PoolSize = 1
37 opts.TLSConfig = tlsConfig
38 opts.DialTimeout = c.Timeout.Duration()
39 opts.ReadTimeout = c.Timeout.Duration()
40 opts.WriteTimeout = c.Timeout.Duration()
41
42 return redis.NewClient(opts), nil
43 }
44
45 func (c *Collector) initCharts() (*collectorapi.Charts, error) {
46 return pikaCharts.Copy(), nil
47 }