github.com/netdata/go.d.plugin@v0.58.1/modules/couchdb/init.go (about)

     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/go.d.plugin/agent/module"
    10  	"github.com/netdata/go.d.plugin/pkg/web"
    11  )
    12  
    13  func (cdb *CouchDB) validateConfig() error {
    14  	if cdb.URL == "" {
    15  		return errors.New("URL not set")
    16  	}
    17  	if cdb.Node == "" {
    18  		return errors.New("'node' not set")
    19  	}
    20  	if _, err := web.NewHTTPRequest(cdb.Request); err != nil {
    21  		return err
    22  	}
    23  	return nil
    24  }
    25  
    26  func (cdb *CouchDB) initHTTPClient() (*http.Client, error) {
    27  	return web.NewHTTPClient(cdb.Client)
    28  }
    29  
    30  func (cdb *CouchDB) initCharts() (*Charts, error) {
    31  	charts := module.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(cdb.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 cdb.databases {
    51  				if err := chart.AddDim(&module.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  }