Roman Grytskiv

Results 40 issues of Roman Grytskiv

Sometimes logs are partly in classic log format, and partly in json format. This makes them hardly readable.

good first issue
refactoring

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...

api

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.

top-level api

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

good first issue
api
zipper

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...

api
zipper

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.

api

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...

api
zipper

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,...

good first issue
api

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...

refactoring