// influxdb package main import ( "fmt" "time" influxdb "github.com/influxdata/influxdb/client/v2" ) var ( infdb string infhost string ) func writeStats(start time.Time) { if opts.Debug { fmt.Printf("writing to influxdb server: %s", opts.Influxdb) } c, err := influxdb.NewHTTPClient(influxdb.HTTPConfig{ Addr: fmt.Sprintf("http://%s", infdb), Timeout: 2 * time.Second, }) if err != nil { fmt.Printf("Error: %+v\n", err) return } defer c.Close() bp, err := influxdb.NewBatchPoints(influxdb.BatchPointsConfig{ Database: "dovecot", Precision: "s", }) if err != nil { fmt.Printf("Error: %+v\n", err) return } tags := map[string]string{"server": infhost, "domain": dbs.Database} fields := map[string]interface{}{ "user": count.GetUser(), "log": count.GetLog(), "err": count.GetErr(), "rem": count.GetRem(), "dup": count.GetDup(), "stop": count.GetTime(), } pt, err := influxdb.NewPoint("ll2mongo", tags, fields, start) if err != nil { fmt.Printf("Error: %+v\n", err) return } bp.AddPoint(pt) // Write the batch c.Write(bp) }