50 lines
727 B
Go
50 lines
727 B
Go
package telegraf
|
|
|
|
import (
|
|
"fmt"
|
|
"sort"
|
|
"strings"
|
|
|
|
"github.com/influxdb/influxdb/client"
|
|
)
|
|
|
|
type BatchPoints struct {
|
|
client.BatchPoints
|
|
|
|
Debug bool
|
|
|
|
Prefix string
|
|
|
|
Config *ConfiguredPlugin
|
|
}
|
|
|
|
func (bp *BatchPoints) Add(name string, val interface{}, tags map[string]string) {
|
|
name = bp.Prefix + name
|
|
|
|
if bp.Config != nil {
|
|
if !bp.Config.ShouldPass(name) {
|
|
return
|
|
}
|
|
}
|
|
|
|
if bp.Debug {
|
|
var tg []string
|
|
|
|
for k, v := range tags {
|
|
tg = append(tg, fmt.Sprintf("%s=\"%s\"", k, v))
|
|
}
|
|
|
|
sort.Strings(tg)
|
|
|
|
fmt.Printf("> [%s] %s=%v\n", strings.Join(tg, " "), name, val)
|
|
}
|
|
|
|
bp.Points = append(bp.Points, client.Point{
|
|
Name: name,
|
|
Tags: tags,
|
|
Fields: map[string]interface{}{
|
|
"value": val,
|
|
},
|
|
})
|
|
}
|