3.3 KiB
Use the InfluxDB Go client library to write data to an {{% product-name %}} database.
This guide presumes some familiarity with Go and InfluxDB. If just getting started, see Get started with InfluxDB.
Before you begin
-
Add the client package your to your project dependencies.
# Add InfluxDB Go client package to your project go.mod go get github.com/influxdata/influxdb-client-go/v2
-
Ensure that InfluxDB is running and you can connect to it. For information about what URL to use to connect to your {{% product-name omit=" Clustered" %}} cluster, contact your InfluxData account representative.
Boilerplate for the InfluxDB Go Client Library
Use the Go library to write and query data from InfluxDB.
-
In your Go program, import the necessary packages and specify the entry point of your executable program.
package main import ( "context" "fmt" "time" "github.com/influxdata/influxdb-client-go/v2" )
-
Define variables for your InfluxDB database (bucket), organization (required, but ignored), and database token.
bucket := "DATABASE_NAME" org := "ignored" token := "DATABASE_TOKEN" // Store the URL of your InfluxDB instance url := "https://{{< influxdb/host >}}"
-
Create the the InfluxDB Go client and pass in the
url
andtoken
parameters.client := influxdb2.NewClient(url, token)
-
Create a write client with the
WriteAPIBlocking
method and pass in theorg
andbucket
parameters.writeAPI := client.WriteAPIBlocking(org, bucket)
Write data to InfluxDB with Go
Use the Go library to write data to InfluxDB.
-
Create a point and write it to InfluxDB using the
WritePoint
method of the API writer struct. -
Close the client to flush all pending writes and finish.
p := influxdb2.NewPoint("stat", map[string]string{"unit": "temperature"}, map[string]interface{}{"avg": 24.5, "max": 45}, time.Now()) writeAPI.WritePoint(context.Background(), p) client.Close()
Complete example write script
package main
import (
"context"
"fmt"
"time"
"github.com/influxdata/influxdb-client-go/v2"
)
func main() {
bucket := "DATABASE_NAME"
org := "ignored"
token := "DATABASE_TOKEN"
// Store the URL of your InfluxDB instance
url := "https://{{< influxdb/host >}}"
// Create new client with default option for server url authenticate by token
client := influxdb2.NewClient(url, token)
// User blocking write client for writes to desired bucket
writeAPI := client.WriteAPIBlocking(org, bucket)
// Create point using full params constructor
p := influxdb2.NewPoint("stat",
map[string]string{"unit": "temperature"},
map[string]interface{}{"avg": 24.5, "max": 45},
time.Now())
// Write point immediately
writeAPI.WritePoint(context.Background(), p)
// Ensures background processes finishes
client.Close()
}