text: package temp
  
  import (
  	"fmt"
  	"strings"
  
  	"github.com/influxdata/telegraf"
  	"github.com/influxdata/telegraf/plugins/inputs"
  	"github.com/influxdata/telegraf/plugins/inputs/system"
  )
  
  type Temperature struct {
  	ps system.PS
  }
  
  func (t *Temperature) Description() string {
  	return "Read metrics about temperature"
  }
  
  const sampleConfig = ""
  
  func (t *Temperature) SampleConfig() string {
  	return sampleConfig
  }
  
  func (t *Temperature) Gather(acc telegraf.Accumulator) error {
  	temps, err := t.ps.Temperature()
  	if err != nil {
  		if strings.Contains(err.Error(), "not implemented yet") {
  			return fmt.Errorf("plugin is not supported on this platform: %v", err)
  		}
  		return fmt.Errorf("error getting temperatures info: %s", err)
  	}
  	for _, temp := range temps {
  		tags := map[string]string{
  			"sensor": temp.SensorKey,
  		}
  		fields := map[string]interface{}{
  			"temp": temp.Temperature,
  		}
  		acc.AddFields("temp", fields, tags)
  	}
  	return nil
  }
  
  func init() {
  	inputs.Add("temp", func() telegraf.Input {
  		return &Temperature{ps: system.NewSystemPS()}
  	})
  }
  