package trig import ( "math" "fmt" "github.com/influxdb/telegraf/plugins" ) type Trig struct { x float64 Amplitude float64 } var TrigConfig = ` # Set the amplitude amplitude = 10.0 ` func (s *Trig) SampleConfig() string { return TrigConfig } func (s *Trig) Description() string { return "Insert trig data" } func (s *Trig) Gather(acc plugins.Accumulator) error { sinner := math.Sin((s.x * math.Pi) / 5.0) * s.Amplitude cosinner := math.Cos((s.x * math.Pi) / 5.0) * s.Amplitude fields := make(map[string]interface{}) fields["sine"] = sinner fields["cosine"] = cosinner tags := make(map[string]string) s.x += 1.0 acc.AddFields("trig",fields,tags) fmt.Printf("%#v\n",fields) return nil } func init() { plugins.Add("Trig", func() plugins.Plugin { return &Trig{x: 0.0} }) }