mirror of
https://github.com/Oxalide/vsphere-influxdb-go.git
synced 2023-10-10 13:36:51 +02:00
114 lines
2.4 KiB
Go
114 lines
2.4 KiB
Go
package client_test
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"math/rand"
|
|
"net/url"
|
|
"os"
|
|
"strconv"
|
|
"time"
|
|
|
|
"github.com/influxdata/influxdb/client"
|
|
)
|
|
|
|
func ExampleNewClient() {
|
|
host, err := url.Parse(fmt.Sprintf("http://%s:%d", "localhost", 8086))
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
// NOTE: this assumes you've setup a user and have setup shell env variables,
|
|
// namely INFLUX_USER/INFLUX_PWD. If not just omit Username/Password below.
|
|
conf := client.Config{
|
|
URL: *host,
|
|
Username: os.Getenv("INFLUX_USER"),
|
|
Password: os.Getenv("INFLUX_PWD"),
|
|
}
|
|
con, err := client.NewClient(conf)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
log.Println("Connection", con)
|
|
}
|
|
|
|
func ExampleClient_Ping() {
|
|
host, err := url.Parse(fmt.Sprintf("http://%s:%d", "localhost", 8086))
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
con, err := client.NewClient(client.Config{URL: *host})
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
dur, ver, err := con.Ping()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
log.Printf("Happy as a hippo! %v, %s", dur, ver)
|
|
}
|
|
|
|
func ExampleClient_Query() {
|
|
host, err := url.Parse(fmt.Sprintf("http://%s:%d", "localhost", 8086))
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
con, err := client.NewClient(client.Config{URL: *host})
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
q := client.Query{
|
|
Command: "select count(value) from shapes",
|
|
Database: "square_holes",
|
|
}
|
|
if response, err := con.Query(q); err == nil && response.Error() == nil {
|
|
log.Println(response.Results)
|
|
}
|
|
}
|
|
|
|
func ExampleClient_Write() {
|
|
host, err := url.Parse(fmt.Sprintf("http://%s:%d", "localhost", 8086))
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
con, err := client.NewClient(client.Config{URL: *host})
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
var (
|
|
shapes = []string{"circle", "rectangle", "square", "triangle"}
|
|
colors = []string{"red", "blue", "green"}
|
|
sampleSize = 1000
|
|
pts = make([]client.Point, sampleSize)
|
|
)
|
|
|
|
rand.Seed(42)
|
|
for i := 0; i < sampleSize; i++ {
|
|
pts[i] = client.Point{
|
|
Measurement: "shapes",
|
|
Tags: map[string]string{
|
|
"color": strconv.Itoa(rand.Intn(len(colors))),
|
|
"shape": strconv.Itoa(rand.Intn(len(shapes))),
|
|
},
|
|
Fields: map[string]interface{}{
|
|
"value": rand.Intn(sampleSize),
|
|
},
|
|
Time: time.Now(),
|
|
Precision: "s",
|
|
}
|
|
}
|
|
|
|
bps := client.BatchPoints{
|
|
Points: pts,
|
|
Database: "BumbeBeeTuna",
|
|
RetentionPolicy: "default",
|
|
}
|
|
_, err = con.Write(bps)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|