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 }