mirror of
https://github.com/Oxalide/vsphere-influxdb-go.git
synced 2023-10-10 13:36:51 +02:00
121 lines
4.6 KiB
Go
121 lines
4.6 KiB
Go
// The influx command is a CLI client to InfluxDB.
|
|
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/influxdata/influxdb/client"
|
|
"github.com/influxdata/influxdb/cmd/influx/cli"
|
|
)
|
|
|
|
// These variables are populated via the Go linker.
|
|
var (
|
|
version string
|
|
)
|
|
|
|
const (
|
|
// defaultFormat is the default format of the results when issuing queries
|
|
defaultFormat = "column"
|
|
|
|
// defaultPrecision is the default timestamp format of the results when issuing queries
|
|
defaultPrecision = "ns"
|
|
|
|
// defaultPPS is the default points per second that the import will throttle at
|
|
// by default it's 0, which means it will not throttle
|
|
defaultPPS = 0
|
|
)
|
|
|
|
func init() {
|
|
// If version is not set, make that clear.
|
|
if version == "" {
|
|
version = "unknown"
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
c := cli.New(version)
|
|
|
|
fs := flag.NewFlagSet("InfluxDB shell version "+version, flag.ExitOnError)
|
|
fs.StringVar(&c.Host, "host", client.DefaultHost, "Influxdb host to connect to.")
|
|
fs.IntVar(&c.Port, "port", client.DefaultPort, "Influxdb port to connect to.")
|
|
fs.StringVar(&c.ClientConfig.UnixSocket, "socket", "", "Influxdb unix socket to connect to.")
|
|
fs.StringVar(&c.ClientConfig.Username, "username", "", "Username to connect to the server.")
|
|
fs.StringVar(&c.ClientConfig.Password, "password", "", `Password to connect to the server. Leaving blank will prompt for password (--password="").`)
|
|
fs.StringVar(&c.Database, "database", c.Database, "Database to connect to the server.")
|
|
fs.BoolVar(&c.Ssl, "ssl", false, "Use https for connecting to cluster.")
|
|
fs.BoolVar(&c.ClientConfig.UnsafeSsl, "unsafeSsl", false, "Set this when connecting to the cluster using https and not use SSL verification.")
|
|
fs.StringVar(&c.Format, "format", defaultFormat, "Format specifies the format of the server responses: json, csv, or column.")
|
|
fs.StringVar(&c.ClientConfig.Precision, "precision", defaultPrecision, "Precision specifies the format of the timestamp: rfc3339,h,m,s,ms,u or ns.")
|
|
fs.StringVar(&c.ClientConfig.WriteConsistency, "consistency", "all", "Set write consistency level: any, one, quorum, or all.")
|
|
fs.BoolVar(&c.Pretty, "pretty", false, "Turns on pretty print for the json format.")
|
|
fs.StringVar(&c.Execute, "execute", c.Execute, "Execute command and quit.")
|
|
fs.BoolVar(&c.ShowVersion, "version", false, "Displays the InfluxDB version.")
|
|
fs.BoolVar(&c.Import, "import", false, "Import a previous database.")
|
|
fs.IntVar(&c.ImporterConfig.PPS, "pps", defaultPPS, "How many points per second the import will allow. By default it is zero and will not throttle importing.")
|
|
fs.StringVar(&c.ImporterConfig.Path, "path", "", "path to the file to import")
|
|
fs.BoolVar(&c.ImporterConfig.Compressed, "compressed", false, "set to true if the import file is compressed")
|
|
|
|
// Define our own custom usage to print
|
|
fs.Usage = func() {
|
|
fmt.Println(`Usage of influx:
|
|
-version
|
|
Display the version and exit.
|
|
-host 'host name'
|
|
Host to connect to.
|
|
-port 'port #'
|
|
Port to connect to.
|
|
-socket 'unix domain socket'
|
|
Unix socket to connect to.
|
|
-database 'database name'
|
|
Database to connect to the server.
|
|
-password 'password'
|
|
Password to connect to the server. Leaving blank will prompt for password (--password '').
|
|
-username 'username'
|
|
Username to connect to the server.
|
|
-ssl
|
|
Use https for requests.
|
|
-unsafeSsl
|
|
Set this when connecting to the cluster using https and not use SSL verification.
|
|
-execute 'command'
|
|
Execute command and quit.
|
|
-format 'json|csv|column'
|
|
Format specifies the format of the server responses: json, csv, or column.
|
|
-precision 'rfc3339|h|m|s|ms|u|ns'
|
|
Precision specifies the format of the timestamp: rfc3339, h, m, s, ms, u or ns.
|
|
-consistency 'any|one|quorum|all'
|
|
Set write consistency level: any, one, quorum, or all
|
|
-pretty
|
|
Turns on pretty print for the json format.
|
|
-import
|
|
Import a previous database export from file
|
|
-pps
|
|
How many points per second the import will allow. By default it is zero and will not throttle importing.
|
|
-path
|
|
Path to file to import
|
|
-compressed
|
|
Set to true if the import file is compressed
|
|
|
|
Examples:
|
|
|
|
# Use influx in a non-interactive mode to query the database "metrics" and pretty print json:
|
|
$ influx -database 'metrics' -execute 'select * from cpu' -format 'json' -pretty
|
|
|
|
# Connect to a specific database on startup and set database context:
|
|
$ influx -database 'metrics' -host 'localhost' -port '8086'
|
|
`)
|
|
}
|
|
fs.Parse(os.Args[1:])
|
|
|
|
if c.ShowVersion {
|
|
c.Version()
|
|
os.Exit(0)
|
|
}
|
|
|
|
if err := c.Run(); err != nil {
|
|
fmt.Fprintf(os.Stderr, "%s\n", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|