Go client library for InfluxDB v3
The InfluxDB v3 influxdb3-go
Go client library integrates with Go scripts and applications
to write and query data stored in an InfluxDB Clustered database.
Installation
go get github.com/InfluxCommunity/influxdb3-go/v2
Importing the package
The influxdb3-go
client library module provides the influxdb3
package.
Import the package:
import (
"github.com/InfluxCommunity/influxdb3-go/v2/influxdb3"
)
API reference
Function New
Create a client to interact with InfluxDB.
Syntax
New(config ClientConfig)
Initializes and returns a influxdb3.Client
instance with the following:
- Configuration and functions for writing to the database.
- A
*flight.Client
and functions for querying the database.
Parameters
-
config
: AClientConfig
struct with the following configuration properties:Host
(string): the InfluxDB Clustered server URLToken
(string): a database token stringDatabase
(string): the database to use for writing and querying.Organization
(string): Optional. The organization name or ID.HTTPClient
(*http.Client
): Optional. Specifies a custom HTTP client, TLS configuration, or timeout to use.WriteOptions
(*WriteOptions
): Optional. Options passed to the write client for writing to the database.Headers
(http.Header
): Optional. Headers to include in all requests.
Examples
Create an InfluxDB client
package main
import (
"github.com/InfluxCommunity/influxdb3-go/v2/influxdb3"
)
func main() {
client, err := influxdb3.New(influxdb3.ClientConfig{
Host: "https://cluster-host.com",
Token: "DATABASE_TOKEN",
Database: "DATABASE_NAME",
})
defer func(client *influxdb3.Client) {
err := client.Close()
if err != nil {
panic(err)
}
}(client)
if(err != nil) {
panic(err)
}
}
Replace the following configuration values:
DATABASE_NAME
: the name of the database to queryDATABASE_TOKEN
: a database token with read permission on the specified database
Class influxdb3.Client
Function Client.Query()
Query data from InfluxDB v3 using SQL.
Syntax
client.Query(ctx context.Context, query string)
Sends a Flight query request with SQL to InfluxDB.
Returns the following:
- A custom iterator (*QueryIterator) for accessing query result data and metadata.
- An error, if any.
Parameters
ctx
(context.Context
): the context to use for the requestquery
(string): the SQL query to execute.
Examples
Query using SQL
query := `SELECT *
FROM home
WHERE time >= '2022-01-02T08:00:00Z'
AND time <= '2022-01-02T20:00:00Z'`
iterator, err := client.Query(context.Background(), query)
Function Client.QueryWithOptions()
Query data from InfluxDB v3 with query options such as query type for querying with InfluxQL.
Syntax
client.QueryWithOptions(ctx context.Context, options *QueryOptions, query string)
Sends a query request with the specified query options to InfluxDB.
Returns the following:
- A custom iterator (*QueryIterator) for accessing query result data and metadata.
- An error, if any.
Parameters
ctx
(context.Context
): the context to use for the requestoptions
: query options (query type, optional database)query
(string): the SQL or InfluxQL query to execute.
Examples
Query using InfluxQL
query := `SELECT *
FROM home
WHERE time >= 1641124000s
AND time <= 1641124000s + 8h`
queryOptions := influxdb3.QueryOptions{QueryType: influxdb3.InfluxQL}
iterator, err := client.QueryWithOptions(context.Background(), &queryOptions, query)
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.