Roman Grytskiv
Roman Grytskiv
Sometimes logs are partly in classic log format, and partly in json format. This makes them hardly readable.
This should be a follow-up to #70 We can use a docker-compose setup for benchmarking if long-term benchmark comparison is left-out. Docker is not suited to track benchmark performance over...
The majority of errors are suppressed in `carbonapi`, remaining invisible. There is no clear metric of error rate. We are limited in what HTTP codes we can return by compatibility...
There is currently no `timeSlice` function in this implementation of graphite as defined [here](https://graphite.readthedocs.io/en/latest/functions.html#graphite.render.functions.timeSlice). It would be nice to have it.
Add automatic system test that: 1. Spins-up the setup from #58 2. Feeds some mock data on the storage 3. Retrieves data via the `go-carbon`→`zipper`→`carbonapi` chain 4. Verifies correctness
In some handlers (e.g. `render` handler in `zipper`), the handlers do not return immediately if context was cancelled. This can lead to goroutines piling up if inflow of requests cannot...
The [ASAP](http://futuredata.stanford.edu/asap/) algorithm allows for good smoothing during downsampling. The graphs produced retain key features and look realistic. It would be nice to have it as a choice for downsampling.
This includes several points: - Expose more metrics via Prometheus - Add separate request timing stats for cached and uncached responses - Make graphite push optional - Add saturation and...
We currently mirror *expvars* into graphite. We need to mirror the Prometheus metrics as well. After this is done, we could clean up some of the *expvars* and graphite metrics,...
1. Currently error handling partially resides in shared `rpc` code. It has to be moved to `api` and `zipper` separately; 2. `api` should not use error fan-in methods since it...