Bryan Boreham
5a529ae06b
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-05-13 10:34:23 +02: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