type CancelableTransport interface {
http.RoundTripper
CancelRequest(req *http.Request)
}
CancelableTransport is like net.Transport but provides per-request cancelation functionality.
var DefaultTransport CancelableTransport = &http.Transport{ Proxy: http.ProxyFromEnvironment, Dial: (&net.Dialer{ Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, }).Dial, TLSHandshakeTimeout: 10 * time.Second, }
DefaultTransport is used if no Transport is set in Config.
type Client interface {
// contains filtered or unexported methods
}
Client is the interface for an API client.
func New(cfg Config) (Client, error)
New returns a new Client.
It is safe to use the returned Client from multiple goroutines.
type Config struct {
// The address of the Prometheus to connect to.
Address string
// Transport is used by the Client to drive HTTP requests. If not
// provided, DefaultTransport will be used.
Transport CancelableTransport
}
Config defines configuration parameters for a new client.
type Error struct {
Type ErrorType
Msg string
}
Error is an error returned by the API.
func (e *Error) Error() string
type ErrorType string
ErrorType models the different API error types.
const (
ErrBadData ErrorType = "bad_data"
ErrTimeout = "timeout"
ErrCanceled = "canceled"
ErrExec = "execution"
ErrBadResponse = "bad_response"
)
Possible values for ErrorType.
type QueryAPI interface {
// Query performs a query for the given time.
Query(ctx context.Context, query string, ts time.Time) (model.Value, error)
// Query performs a query for the given range.
QueryRange(ctx context.Context, query string, r Range) (model.Value, error)
}
QueryAPI provides bindings the Prometheus's query API.
func NewQueryAPI(c Client) QueryAPI
NewQueryAPI returns a new QueryAPI for the client.
It is safe to use the returned QueryAPI from multiple goroutines.
type Range struct {
// The boundaries of the time range.
Start, End time.Time
// The maximum time between two slices within the boundaries.
Step time.Duration
}
Range represents a sliced time range.