Bartlomiej Plotka
2280fb19f6
Revert "change api http.client to interface"
2023-12-22 11:16:00 +00:00
Roy Reshef
24d59e9b9b
change client to interface, allow override by other implementations (e.g. github.com/hashicorp/go-retryablehttp)
...
Signed-off-by: Roy Reshef <rreshef@densify.com>
2023-11-22 16:52:47 -05:00
Soroosh Azary Marhabi
2cfd1eb960
Enable same linters as the Prometheus repo itself ( #1056 )
...
* Add gofumpt to github workflow & fix all files for it
Signed-off-by: sazary <soroosh@azary.ir>
* Add goimports to golangci & fix it's issues
Signed-off-by: sazary <soroosh@azary.ir>
* Add revive to golangci & fix it's issues
Signed-off-by: sazary <soroosh@azary.ir>
* Add errcheck & misspell to golangci and fix their issues
Signed-off-by: sazary <soroosh@azary.ir>
* Add govet & gosimple to golangci and fix their issues
Signed-off-by: sazary <soroosh@azary.ir>
* Enable all default linters of golangci
Signed-off-by: sazary <soroosh@azary.ir>
2022-06-17 09:04:06 +02:00
Bryan Boreham
4dd3cbb4ab
API client: make http reads more efficient ( #976 )
...
Replace `io.ReadAll` with `bytes.Buffer.ReadFrom`.
Both need to resize a buffer until they have finished reading;
the former increases by 1.25x each time while the latter uses 2x.
Also added a benchmark to demonstrate the benefit:
name old time/op new time/op delta
Client/4KB-8 35.9µs ± 4% 35.3µs ± 3% ~ (p=0.310 n=5+5)
Client/50KB-8 83.1µs ± 8% 69.5µs ± 1% -16.37% (p=0.008 n=5+5)
Client/1000KB-8 891µs ± 6% 750µs ± 0% -15.83% (p=0.016 n=5+4)
Client/2000KB-8 1.74ms ± 2% 1.35ms ± 1% -22.72% (p=0.008 n=5+5)
name old alloc/op new alloc/op delta
Client/4KB-8 20.2kB ± 0% 20.4kB ± 0% +1.26% (p=0.008 n=5+5)
Client/50KB-8 218kB ± 0% 136kB ± 0% -37.65% (p=0.008 n=5+5)
Client/1000KB-8 5.88MB ± 0% 2.11MB ± 0% -64.10% (p=0.008 n=5+5)
Client/2000KB-8 11.7MB ± 0% 4.2MB ± 0% -63.93% (p=0.008 n=5+5)
name old allocs/op new allocs/op delta
Client/4KB-8 75.0 ± 0% 72.0 ± 0% -4.00% (p=0.008 n=5+5)
Client/50KB-8 109 ± 0% 98 ± 0% -10.09% (p=0.079 n=4+5)
Client/1000KB-8 617 ± 0% 593 ± 0% -3.89% (p=0.008 n=5+5)
Client/2000KB-8 1.13k ± 0% 1.09k ± 0% -3.27% (p=0.008 n=5+5)
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2022-01-25 11:16:10 +01: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
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
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
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
Karsten Weiss
958ea82988
Fix typos
...
Signed-off-by: Karsten Weiss <knweiss@gmail.com>
2018-04-13 23:23:52 +02: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
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