influx_client.go 989 Bytes
package influx_client

import(
  influx "github.com/influxdata/influxdb/client/v2"
  "time"
)


type InfluxClient struct {
  Client influx.Client
  InfluxErr error
  Db string
}

func CreateClient(db string, username string, password string, dbAddress string) *InfluxClient {
  i := InfluxClient {}
  i.Db = db
  i.Client, i.InfluxErr = influx.NewHTTPClient(influx.HTTPConfig{
    Addr:     dbAddress,
    Username: username,
    Password: password,
  })
  if i.InfluxErr != nil {
    panic(i.InfluxErr)
  }
  return &i
}

func (i *InfluxClient) CreatePoint(tableName string, tags map[string]string, fields map[string]interface{}, timestamp time.Time) {
  bp, _ := influx.NewBatchPoints(influx.BatchPointsConfig{
    Database: i.Db,
    Precision: "s",
  })

  pt, err := influx.NewPoint(tableName, tags, fields, timestamp)
  if err != nil {
    panic(err)
    // log.Fatal(err)
  }
  bp.AddPoint(pt)

  // Write the batch
  if err := i.Client.Write(bp); err != nil {
    panic(err)
  }
}