Package client
Overview ▹
Index ▹
Constants
const ( // DefaultHost is the default host used to connect to an InfluxDB instance DefaultHost = "localhost" // DefaultPort is the default port used to connect to an InfluxDB instance DefaultPort = 8086 // DefaultTimeout is the default connection timeout used to connect to an InfluxDB instance DefaultTimeout = 0 )
const ( // ConsistencyOne requires at least one data node acknowledged a write. ConsistencyOne = "one" // ConsistencyAll requires all data nodes to acknowledge a write. ConsistencyAll = "all" // ConsistencyQuorum requires a quorum of data nodes to acknowledge a write. ConsistencyQuorum = "quorum" // ConsistencyAny allows for hinted hand off, potentially no write happened yet. ConsistencyAny = "any" )
func EpochToTime ¶
func EpochToTime(epoch int64, precision string) (time.Time, error)
EpochToTime takes a unix epoch time and uses precision to return back a time.Time
func ParseConnectionString ¶
func ParseConnectionString(path string, ssl bool) (url.URL, error)
ParseConnectionString will parse a string to create a valid connection URL
func SetPrecision ¶
func SetPrecision(t time.Time, precision string) time.Time
SetPrecision will round a time to the specified precision
type BatchPoints ¶
BatchPoints is used to send batched data in a single write. Database and Points are required If no retention policy is specified, it will use the databases default retention policy. If tags are specified, they will be "merged" with all points. If a point already has that tag, it will be ignored. If time is specified, it will be applied to any point with an empty time. Precision can be specified if the time is in epoch format (integer). Valid values for Precision are n, u, ms, s, m, and h
type BatchPoints struct { Points []Point `json:"points,omitempty"` Database string `json:"database,omitempty"` RetentionPolicy string `json:"retentionPolicy,omitempty"` Tags map[string]string `json:"tags,omitempty"` Time time.Time `json:"time,omitempty"` Precision string `json:"precision,omitempty"` WriteConsistency string `json:"-"` }
func (*BatchPoints) UnmarshalJSON ¶
func (bp *BatchPoints) UnmarshalJSON(b []byte) error
UnmarshalJSON decodes the data into the BatchPoints struct
type ChunkedResponse ¶
ChunkedResponse represents a response from the server that uses chunking to stream the output.
type ChunkedResponse struct {
// contains filtered or unexported fields
}
func NewChunkedResponse ¶
func NewChunkedResponse(r io.Reader) *ChunkedResponse
NewChunkedResponse reads a stream and produces responses from the stream.
func (*ChunkedResponse) NextResponse ¶
func (r *ChunkedResponse) NextResponse() (*Response, error)
NextResponse reads the next line of the stream and returns a response.
type Client ¶
Client is used to make calls to the server.
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(c Config) (*Client, error)
NewClient will instantiate and return a connected client to issue commands to the server.
▹ Example
func (*Client) Addr ¶
func (c *Client) Addr() string
Addr provides the current url as a string of the server the client is connected to.
func (*Client) Ping ¶
func (c *Client) Ping() (time.Duration, string, error)
Ping will check to see if the server is up Ping returns how long the request took, the version of the server it connected to, and an error if one occurred.
▹ Example
func (*Client) Query ¶
func (c *Client) Query(q Query) (*Response, error)
Query sends a command to the server and returns the Response
▹ Example
func (*Client) SetAuth ¶
func (c *Client) SetAuth(u, p string)
SetAuth will update the username and passwords
func (*Client) SetPrecision ¶
func (c *Client) SetPrecision(precision string)
SetPrecision will update the precision
func (*Client) Write ¶
func (c *Client) Write(bp BatchPoints) (*Response, error)
Write takes BatchPoints and allows for writing of multiple points with defaults If successful, error is nil and Response is nil If an error occurs, Response may contain additional information if populated.
▹ Example
func (*Client) WriteLineProtocol ¶
func (c *Client) WriteLineProtocol(data, database, retentionPolicy, precision, writeConsistency string) (*Response, error)
WriteLineProtocol takes a string with line returns to delimit each write If successful, error is nil and Response is nil If an error occurs, Response may contain additional information if populated.
type Config ¶
Config is used to specify what server to connect to. URL: The URL of the server connecting to. Username/Password are optional. They will be passed via basic auth if provided. UserAgent: If not provided, will default "InfluxDBClient", Timeout: If not provided, will default to 0 (no timeout)
type Config struct { URL url.URL UnixSocket string Username string Password string UserAgent string Timeout time.Duration Precision string WriteConsistency string UnsafeSsl bool }
func NewConfig ¶
func NewConfig() Config
NewConfig will create a config to be used in connecting to the client
type Message ¶
Message represents a user message.
type Message struct { Level string `json:"level,omitempty"` Text string `json:"text,omitempty"` }
type Point ¶
Point defines the fields that will be written to the database Measurement, Time, and Fields are required Precision can be specified if the time is in epoch format (integer). Valid values for Precision are n, u, ms, s, m, and h
type Point struct { Measurement string Tags map[string]string Time time.Time Fields map[string]interface{} Precision string Raw string }
func (*Point) MarshalJSON ¶
func (p *Point) MarshalJSON() ([]byte, error)
MarshalJSON will format the time in RFC3339Nano Precision is also ignored as it is only used for writing, not reading Or another way to say it is we always send back in nanosecond precision
func (*Point) MarshalString ¶
func (p *Point) MarshalString() string
MarshalString renders string representation of a Point with specified precision. The default precision is nanoseconds.
func (*Point) UnmarshalJSON ¶
func (p *Point) UnmarshalJSON(b []byte) error
UnmarshalJSON decodes the data into the Point struct
type Query ¶
Query is used to send a command to the server. Both Command and Database are required.
type Query struct { Command string Database string // Chunked tells the server to send back chunked responses. This places // less load on the server by sending back chunks of the response rather // than waiting for the entire response all at once. Chunked bool // ChunkSize sets the maximum number of rows that will be returned per // chunk. Chunks are either divided based on their series or if they hit // the chunk size limit. // // Chunked must be set to true for this option to be used. ChunkSize int }
type Response ¶
Response represents a list of statement results.
type Response struct { Results []Result Err error }
func (*Response) Error ¶
func (r *Response) Error() error
Error returns the first error from any statement. Returns nil if no errors occurred on any statements.
func (*Response) MarshalJSON ¶
func (r *Response) MarshalJSON() ([]byte, error)
MarshalJSON encodes the response into JSON.
func (*Response) UnmarshalJSON ¶
func (r *Response) UnmarshalJSON(b []byte) error
UnmarshalJSON decodes the data into the Response struct
type Result ¶
Result represents a resultset returned from a single statement.
type Result struct { Series []models.Row Messages []*Message Err error }
func (*Result) MarshalJSON ¶
func (r *Result) MarshalJSON() ([]byte, error)
MarshalJSON encodes the result into JSON.
func (*Result) UnmarshalJSON ¶
func (r *Result) UnmarshalJSON(b []byte) error
UnmarshalJSON decodes the data into the Result struct