master
go 66 lines 1.44 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package couchdb
4
5 import (
6 "errors"
7 "net/http"
8
9 "github.com/netdata/netdata/go/plugins/pkg/web"
10 "github.com/netdata/netdata/go/plugins/plugin/framework/collectorapi"
11 )
12
13 func (c *Collector) validateConfig() error {
14 if c.URL == "" {
15 return errors.New("URL not set")
16 }
17 if c.Node == "" {
18 return errors.New("'node' not set")
19 }
20 if _, err := web.NewHTTPRequest(c.RequestConfig); err != nil {
21 return err
22 }
23 return nil
24 }
25
26 func (c *Collector) initHTTPClient() (*http.Client, error) {
27 return web.NewHTTPClient(c.ClientConfig)
28 }
29
30 func (c *Collector) initCharts() (*Charts, error) {
31 charts := collectorapi.Charts{}
32
33 if err := charts.Add(*dbActivityCharts.Copy()...); err != nil {
34 return nil, err
35 }
36 if err := charts.Add(*httpTrafficBreakdownCharts.Copy()...); err != nil {
37 return nil, err
38 }
39 if err := charts.Add(*serverOperationsCharts.Copy()...); err != nil {
40 return nil, err
41 }
42 if len(c.databases) != 0 {
43 dbCharts := dbSpecificCharts.Copy()
44
45 if err := charts.Add(*dbCharts...); err != nil {
46 return nil, err
47 }
48
49 for _, chart := range *dbCharts {
50 for _, db := range c.databases {
51 if err := chart.AddDim(&collectorapi.Dim{ID: "db_" + db + "_" + chart.ID, Name: db}); err != nil {
52 return nil, err
53 }
54 }
55 }
56
57 }
58 if err := charts.Add(*erlangStatisticsCharts.Copy()...); err != nil {
59 return nil, err
60 }
61
62 if len(charts) == 0 {
63 return nil, errors.New("zero charts")
64 }
65 return &charts, nil
66 }