Commit Graph

112 Commits

Author SHA1 Message Date
gotjosh bd79fe1bf1 Update api/prometheus/v1/api_test.go
Co-Authored-By: Tobias Guggenmos <tguggenm@redhat.com>
Signed-off-by: gotjosh <josue@grafana.com>
2020-02-27 17:52:05 +00:00
gotjosh 7f509dc4f4 API Client: Support new metadata endpoint in v1
Introduces support for the new metadata endpoint from Prometheus. The new endpoint provides information independent of targets and collapses the unique combinations of HELP, TYPE and UNIT.

Fixes #705

Signed-off-by: gotjosh <josue@grafana.com>
2020-02-26 17:48:57 +00:00
Joe Elliott 88792b1169 Moved warnings into apiclient
Signed-off-by: Joe Elliott <number101010@gmail.com>
2019-12-11 10:04:00 -05:00
Joe Elliott bd858421cd Fixed TestDoGetFallback test
Signed-off-by: Joe Elliott <number101010@gmail.com>
2019-12-11 09:36:49 -05:00
Joe Elliott 393adc9261 Refactor ~worked. All tests passing except one
Signed-off-by: Joe Elliott <number101010@gmail.com>
2019-12-10 16:53:38 -05:00
Joe Elliott 7f4279992e First pass unravel
Signed-off-by: Joe Elliott <number101010@gmail.com>
2019-12-10 15:16:44 -05:00
Beni Cherniavsky-Paskin 38c67520a3 api client examples: avoid shadowing package with variable
Signed-off-by: Beni Cherniavsky-Paskin <cben@redhat.com>
2019-12-09 14:55:16 +02:00
beorn7 b8308329f0 Fix function names in API examples
The part after the underscore has to be lowercase. Otherwise, it is
seen as the name of a Go type, which doesn't exist, which will result
in the example not showing up in godoc.

Signed-off-by: beorn7 <beorn@grafana.com>
2019-10-15 13:43:53 +02:00
Guangming Wang 49b3f23433 remove duplicated assignment in v1/api.go (#647)
Signed-off-by: Guangming Wang <guangming.wang@daocloud.io>
2019-10-02 00:47:28 +03:00
Chris Marchbanks 48fdc3021b
Provide godoc examples for using the api
Closes #194

Signed-off-by: Chris Marchbanks <csmarchbanks@gmail.com>
2019-08-07 20:53:38 -06:00
Thomas Jackson cd27091e79 Handle formatting when the time in nanoseconds requires more than a single int64
Signed-off-by: Thomas Jackson <jacksontj.89@gmail.com>

Fixup for #617
2019-07-09 09:23:52 -07:00
Thomas Jackson 9b5568b9ab Pass all precision instead of artificially limiting
Signed-off-by: Thomas Jackson <jacksontj.89@gmail.com>
2019-07-09 07:31:37 -07:00
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
Louis DeLosSantos 12af604cf2 wait for done before writing to shared resp body (#532)
Signed-off-by: Louis Delossantos <ldelossa.ld@gmail.com>
2019-01-28 11:53:16 +03: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
alileza bc3c7b9dd1 Update DefaultRoundTripper to DialContext because Dial is deprecated
Signed-off-by: alileza <alirezayahya@gmail.com>
2018-06-27 12:02:52 +02: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
Björn Rabenstein 82f5ff156b
Merge pull request #402 from bobmshannon/bs/extend_prom_api_interface
Implement AlertManager, Status, and Target methods
2018-04-17 01:38:56 +02:00
Karsten Weiss 958ea82988 Fix typos
Signed-off-by: Karsten Weiss <knweiss@gmail.com>
2018-04-13 23:23:52 +02: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 5d19d9de34
api: renames create client func 2017-04-25 11:37:13 -03:00
André Carvalho 6fdb468212
api: add build tag for go 1.7 2017-04-24 18:05:17 -03:00
André Carvalho 09dcce7042
api: uses context from net/http
This commit removes the now unnecessary CancelableTransport and rely on
the net/http context support.
2017-04-20 10:31:18 -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