github.com/netdata/go.d.plugin@v0.58.1/modules/example/collect.go (about)

     1  // SPDX-License-Identifier: GPL-3.0-or-later
     2  
     3  package example
     4  
     5  import (
     6  	"fmt"
     7  
     8  	"github.com/netdata/go.d.plugin/agent/module"
     9  )
    10  
    11  func (e *Example) collect() (map[string]int64, error) {
    12  	collected := make(map[string]int64)
    13  
    14  	for _, chart := range *e.Charts() {
    15  		e.collectChart(collected, chart)
    16  	}
    17  	return collected, nil
    18  }
    19  
    20  func (e *Example) collectChart(collected map[string]int64, chart *module.Chart) {
    21  	var num int
    22  	if chart.Opts.Hidden {
    23  		num = e.Config.HiddenCharts.Dims
    24  	} else {
    25  		num = e.Config.Charts.Dims
    26  	}
    27  
    28  	for i := 0; i < num; i++ {
    29  		name := fmt.Sprintf("random%d", i)
    30  		id := fmt.Sprintf("%s_%s", chart.ID, name)
    31  
    32  		if !e.collectedDims[id] {
    33  			e.collectedDims[id] = true
    34  
    35  			dim := &module.Dim{ID: id, Name: name}
    36  			if err := chart.AddDim(dim); err != nil {
    37  				e.Warning(err)
    38  			}
    39  			chart.MarkNotCreated()
    40  		}
    41  		if i%2 == 0 {
    42  			collected[id] = e.randInt()
    43  		} else {
    44  			collected[id] = -e.randInt()
    45  		}
    46  	}
    47  }