Package client
Overview ▹
Index ▹
Constants
const ( // UDPPayloadSize is a reasonable default payload size for UDP packets that // could be travelling over the internet. UDPPayloadSize = 512 )
type BatchPoints ¶
BatchPoints is an interface into a batched grouping of points to write into InfluxDB together. BatchPoints is NOT thread-safe, you must create a separate batch for each goroutine.
type BatchPoints interface { // AddPoint adds the given point to the Batch of points. AddPoint(p *Point) // AddPoints adds the given points to the Batch of points. AddPoints(ps []*Point) // Points lists the points in the Batch. Points() []*Point // Precision returns the currently set precision of this Batch. Precision() string // SetPrecision sets the precision of this batch. SetPrecision(s string) error // Database returns the currently set database of this Batch. Database() string // SetDatabase sets the database of this Batch. SetDatabase(s string) // WriteConsistency returns the currently set write consistency of this Batch. WriteConsistency() string // SetWriteConsistency sets the write consistency of this Batch. SetWriteConsistency(s string) // RetentionPolicy returns the currently set retention policy of this Batch. RetentionPolicy() string // SetRetentionPolicy sets the retention policy of this Batch. SetRetentionPolicy(s string) }
▹ Example
▹ Example (Setters)
func NewBatchPoints ¶
func NewBatchPoints(conf BatchPointsConfig) (BatchPoints, error)
NewBatchPoints returns a BatchPoints interface based on the given config.
type BatchPointsConfig ¶
BatchPointsConfig is the config data needed to create an instance of the BatchPoints struct.
type BatchPointsConfig struct { // Precision is the write precision of the points, defaults to "ns". Precision string // Database is the database to write points to. Database string // RetentionPolicy is the retention policy of the points. RetentionPolicy string // Write consistency is the number of servers required to confirm write. WriteConsistency string }
type Client ¶
Client is a client interface for writing & querying the database.
type Client interface { // Ping checks that status of cluster, and will always return 0 time and no // error for UDP clients. Ping(timeout time.Duration) (time.Duration, string, error) // Write takes a BatchPoints object and writes all Points to InfluxDB. Write(bp BatchPoints) error // Query makes an InfluxDB Query on the database. This will fail if using // the UDP client. Query(q Query) (*Response, error) // Close releases any resources a Client may be using. Close() error }
▹ Example
▹ Example (CreateDatabase)
▹ Example (Query)
▹ Example (UDP)
▹ Example (Write)
▹ Example (Write1000)
func NewHTTPClient ¶
func NewHTTPClient(conf HTTPConfig) (Client, error)
NewHTTPClient returns a new Client from the provided config. Client is safe for concurrent use by multiple goroutines.
func NewUDPClient ¶
func NewUDPClient(conf UDPConfig) (Client, error)
NewUDPClient returns a client interface for writing to an InfluxDB UDP service from the given config.
type HTTPConfig ¶
HTTPConfig is the config data needed to create an HTTP Client.
type HTTPConfig struct { // Addr should be of the form "http://host:port" // or "http://[ipv6-host%zone]:port". Addr string // Username is the influxdb username, optional. Username string // Password is the influxdb password, optional. Password string // UserAgent is the http User Agent, defaults to "InfluxDBClient". UserAgent string // Timeout for influxdb writes, defaults to no timeout. Timeout time.Duration // InsecureSkipVerify gets passed to the http client, if true, it will // skip https certificate verification. Defaults to false. InsecureSkipVerify bool // TLSConfig allows the user to set their own TLS config for the HTTP // Client. If set, this option overrides InsecureSkipVerify. TLSConfig *tls.Config }
type Message ¶
Message represents a user message.
type Message struct { Level string Text string }
type Point ¶
Point represents a single data point.
type Point struct {
// contains filtered or unexported fields
}
▹ Example
▹ Example (WithoutTime)
func NewPoint ¶
func NewPoint( name string, tags map[string]string, fields map[string]interface{}, t ...time.Time, ) (*Point, error)
NewPoint returns a point with the given timestamp. If a timestamp is not given, then data is sent to the database without a timestamp, in which case the server will assign local time upon reception. NOTE: it is recommended to send data with a timestamp.
func NewPointFrom ¶
func NewPointFrom(pt models.Point) *Point
NewPointFrom returns a point from the provided models.Point.
func (*Point) Fields ¶
func (p *Point) Fields() (map[string]interface{}, error)
Fields returns the fields for the point.
func (*Point) Name ¶
func (p *Point) Name() string
Name returns the measurement name of the point.
func (*Point) PrecisionString ¶
func (p *Point) PrecisionString(precison string) string
PrecisionString returns a line-protocol string of the Point, with the timestamp formatted for the given precision.
func (*Point) String ¶
func (p *Point) String() string
String returns a line-protocol string of the Point.
func (*Point) Tags ¶
func (p *Point) Tags() map[string]string
Tags returns the tags associated with the point.
func (*Point) Time ¶
func (p *Point) Time() time.Time
Time return the timestamp for the point.
func (*Point) UnixNano ¶
func (p *Point) UnixNano() int64
UnixNano returns timestamp of the point in nanoseconds since Unix epoch.
type Query ¶
Query defines a query to send to the server.
type Query struct { Command string Database string Precision string Parameters map[string]interface{} }
func NewQuery ¶
func NewQuery(command, database, precision string) Query
NewQuery returns a query object. The database and precision arguments can be empty strings if they are not needed for the query.
func NewQueryWithParameters ¶
func NewQueryWithParameters(command, database, precision string, parameters map[string]interface{}) Query
NewQueryWithParameters returns a query object. The database and precision arguments can be empty strings if they are not needed for the query. parameters is a map of the parameter names used in the command to their values.
type Response ¶
Response represents a list of statement results.
type Response struct { Results []Result Err string `json:"error,omitempty"` }
func (*Response) Error ¶
func (r *Response) Error() error
Error returns the first error from any statement. It returns nil if no errors occurred on any statements.
type Result ¶
Result represents a resultset returned from a single statement.
type Result struct { Series []models.Row Messages []*Message Err string `json:"error,omitempty"` }
type UDPConfig ¶
UDPConfig is the config data needed to create a UDP Client.
type UDPConfig struct { // Addr should be of the form "host:port" // or "[ipv6-host%zone]:port". Addr string // PayloadSize is the maximum size of a UDP client message, optional // Tune this based on your network. Defaults to UDPPayloadSize. PayloadSize int }