Thomas Jackson
c52580de2b
Change all time formatting to UTC and off of time.RFC3339Nano
...
Prometheus has issues parsing RFC3339Nano timestamps if the year has more than 4 digits, in addition it is the second-pass parse attempt. Since this is a client library and the interface is a `time.Time` it makes sense that we pick the clearest simplest format-- so I propose we use the `model.Time` representation of time in our communications to prometheus. This (1) removes the issues with timezones in those queries going downstream and (2) completely works around this #614 issue as the parsing mechanism in prometheus can handle those times in this format.
Related to #614
Signed-off-by: Thomas Jackson <jacksontj.89@gmail.com>
2019-07-09 07:31:37 -07:00
Thomas Jackson
3d8379da8f
Add Warnings to LabelValues and LabelNames ( #609 )
...
Signed-off-by: Thomas Jackson <jacksontj.89@gmail.com>
2019-06-17 21:27:57 +03:00
Thomas Jackson
063470a3c9
Add warnings to series ( #603 )
...
Signed-off-by: Thomas Jackson <jacksontj.89@gmail.com>
2019-06-15 00:28:28 +03:00
Thomas Jackson
f213ad9bfc
Add /labels API to client ( #604 )
...
API ref https://prometheus.io/docs/prometheus/latest/querying/api/#getting-label-names
Signed-off-by: Thomas Jackson <jacksontj.89@gmail.com>
2019-06-14 16:49:58 +02:00
Thomas Jackson
1335ef46bd
Pass warnings through on non-error responses ( #599 )
...
Return warnings as a separate string slice to simplify handling.
Signed-off-by: Thomas Jackson <jacksontj.89@gmail.com>
2019-06-14 01:40:59 +02:00
Krasi Georgiev
f6e51267db
remove the tsdb dependancy
...
Signed-off-by: Krasi Georgiev <kgeorgie@redhat.com>
2019-05-28 15:42:25 +03:00
Yao Zengzeng
329278ec53
encapsulate target metadata api ( #590 )
...
Signed-off-by: YaoZengzeng <yaozengzeng@zju.edu.cn>
2019-05-28 14:27:09 +02:00
Alex Salt
301aa8906b
/api/v1/rules: alert value as string ( #585 )
...
Signed-off-by: Alexander Saltykov <alexander-s@yandex-team.ru>
2019-05-28 13:57:09 +02:00
Thomas Jackson
7e60220fd3
Switch from encoding/json -> jsoniter ( #570 )
...
* Switch from encoding/json -> jsoniter
Signed-off-by: Thomas Jackson <jacksontj.89@gmail.com>
2019-05-28 13:45:06 +02:00
Thomas Jackson
d5f3c8d55d
Add storage.Warnings to client
...
Signed-off-by: Thomas Jackson <jacksontj.89@gmail.com>
Fixes #560
2019-05-21 07:36:05 -07:00
Thomas Jackson
3f6cbd9560
Remove encode of params in query before DoGetFallback ( #563 )
...
Signed-off-by: Thomas Jackson <jacksontj.89@gmail.com>
2019-05-01 09:28:05 +03:00
Thomas Jackson
a4daf0098c
Implement POST with get fallback for Query/QueryRange ( #557 )
...
* Implement POST with get fallback for Query/QueryRange
Signed-off-by: Thomas Jackson <jacksontj.89@gmail.com>
2019-04-30 10:13:48 +03:00
Bjoern Rabenstein
1173d73405
Increase minimum required Go version to 1.9
...
This allows us to simplify a bunch of code while still supporting the
last four Go minor versions.
We have also run into minor annoyances a couple of times by now to
keep supporting 1.7 and 1.8.
It's time to pull the plug!
Signed-off-by: Bjoern Rabenstein <bjoern@rabenste.in>
2019-04-28 23:28:57 +02:00
Roald Nefs
7490f0a745
Add alerts endpoint to API client ( #552 )
...
Add alerts endpoint to API client. The alerts endpoint returns a list of all active alerts.
Signed-off-by: Roald Nefs <info@roaldnefs.com>
2019-03-25 10:23:28 +02:00
Oleksandr Kushchenko
d5f63107bf
Use a map to describe discovered labels, as they are not validated by the server ( #529 )
...
Signed-off-by: Oleksandr Kushchenko <okushchenko@palantir.com>
2019-01-23 18:39:45 +03:00
Bob Shannon
18d13eacc9
Add support for fetching rules with API client ( #508 )
...
This PR adds support for fetching [rules](https://prometheus.io/docs/prometheus/latest/querying/api/#rules ) via the `/api/v1/rules` endpoint using the API client. Currently, the API client exposes no way to do this and it would be nice to have for external systems that wish to retrieve this information.
2019-01-16 00:34:51 +03:00
Simon Pasquier
f626bd2850
*: support Go modules
...
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2018-11-16 15:09:33 +01:00
Marcin Owsiany
f30f428035
Add a way to return the body of a 5xx response. ( #484 )
...
expose body when handling HTTP errors
Signed-off-by: Marcin Owsiany <marcin@owsiany.pl>
2018-10-25 18:44:21 +01:00
Adam Jaso
93edea3720
Do not parse json on 204 responses ( #476 )
...
* Do not return BadResponse for no content
Signed-off-by: Adam Jaso <2285656+adamjaso@users.noreply.github.com>
2018-10-10 17:20:17 +03:00
Bryan Boreham
04c0326535
Add non-nil Data because Go 1.7 needs it
...
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2018-06-04 10:35:16 +00:00
Bryan Boreham
8fbbc9bc6b
Decode JSON body when Prometheus returns 400 to an api call
...
400 and 422 are documented error codes from Prometheus, so we should
attempt to parse the error returned for both of them.
Needed to change a test that was requiring the old behaviour - made it
use 500 instead of 400.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2018-06-04 10:35:16 +00:00
Bob Shannon
335dadb61a
PR comments
...
Signed-off-by: Bob Shannon <bshannon@palantir.com>
2018-04-12 06:49:52 -07:00
Bob Shannon
e3e66d0bb9
PR comments
...
Signed-off-by: Bob Shannon <bshannon@palantir.com>
2018-04-11 07:38:50 -07:00
Bob Shannon
fc258df5b5
Fix deep equal comparison for time.Time
...
Signed-off-by: Bob Shannon <bshannon@palantir.com>
2018-04-10 19:33:01 -07:00
Bob Shannon
e035b26e30
Bump go version used in build
...
Signed-off-by: Bob Shannon <bshannon@palantir.com>
2018-04-10 18:44:17 -07:00
Bob Shannon
5393573c73
Implement AlertManager, Status, and Target methods
...
Signed-off-by: Bob Shannon <bshannon@palantir.com>
2018-04-10 07:21:46 -07:00
Bob Shannon
10dfec77bf
Implement admin methods for Prometheus API
...
Signed-off-by: Bob Shannon <bshannon@palantir.com>
2018-04-09 21:03:46 -07:00
Vaisakh Rajagopal
e06fadcc6f
Replaced hardcoded arg('GET') with http.MethodGet constant
2018-02-23 00:53:19 +05:30
siddontang
3c0e2b3c2e
v1: support series API
2017-11-24 20:12:53 +08:00
Ilia Choly
a132856ffd
Omit zero value query time
2017-11-16 16:39:52 -05:00
André Carvalho
8077e4bd69
api: fix typo in comments
2017-04-25 18:17:16 -03:00
André Carvalho
6fdb468212
api: add build tag for go 1.7
2017-04-24 18:05:17 -03:00
André Carvalho
11fae2ef0c
api: uses stdlib context
2017-04-20 09:57:46 -03:00
André Carvalho
349922b38c
api: creates versioned package for prometheus v1 api
...
This commit creates a new package to hold the prometheus
v1 API interface. This interface will contain all the funcionality
exposed by Prometheus v1 HTTP API.
The underlying http client is kept on the api package since it
may be reused across diferent API versions and also by the Alertmanager
api package (to come.)
2017-04-19 18:24:14 -03:00
André Carvalho
7b5f0fdaa9
api: fix godoc comment
2017-03-31 21:31:42 -03:00
André Carvalho
57f23d303f
api: returns specific type for label values
2017-03-31 21:29:30 -03:00
André Carvalho
123637b5ca
api: renames method for consistency
2017-03-31 21:07:16 -03:00
André Carvalho
8cb7769e36
api: stops ignoring errors creating requests
2017-03-31 21:05:08 -03:00
André Carvalho
2f33fabffe
api: adds label values query implementation
...
This commit adds a client side implementation for fetching label values
from prometheus api.
2017-03-31 19:42:19 -03:00
beorn7
c9325a4a67
Add goreport card and remove warnings where feasible
2016-09-16 19:59:04 +02:00
Michael Stapelberg
7b5f88727a
api: document goroutine safeness
2016-08-01 00:11:57 +02:00
Mitsuhiro Tanda
67ee8ba510
support external-url
2016-02-23 21:23:58 +09:00
Fabian Reinartz
f664cd7ea5
Use ctxhttp package for cancelable requests
2015-10-02 12:04:48 +02:00
Fabian Reinartz
2aae630ba8
Add initial HTTP API v1 package
2015-08-19 19:00:22 +02:00