tessera-metrics / tessera

A dashboard front-end for graphite.
http://tessera-metrics.github.io/tessera/
Apache License 2.0
1.19k stars 81 forks source link

Server side cache? #419

Open chicagobuss opened 9 years ago

chicagobuss commented 9 years ago

Given that tessera runs as a server side app, I have to ask - do you do any caching of calls to graphite? Or are all data calls initialized from the browser? This is the #1 reason we still use our own home-grown dashboarding system - by making the calls to graphite on the server and caching the results, it doesn't matter how many more people have dashboards open - we don't put any additional load on graphite.

Anyway, if this is already on the roadmap, I'm just curious when we'll see it - if not, I'd like to formally request this as it means we could completely switch to tessera (which I'd love to do given how nice this looks!)

Thanks

aalpern commented 9 years ago

Nope - all calls to graphite are made from the browser, and there are currently no plans to implement a caching HTTP proxy for graphite (if you want a dashboard system that does that now, Grafana 2.0 is moving in that direction, with a proxy for all data writen in Go).

chicagobuss commented 9 years ago

Gotcha, any objections to us submitting pull requests to implement optional server-side caching? Or are there design reasons to keeping all calls coming from the browser?

aalpern commented 9 years ago

The main issue with doing it in python is that it's single-threaded; you need to run multiple instances of tessera under a WSGI front-end (we use gunicorn) to scale if you have long-running blocking calls, so sharing the cache is a problem. Grafana's new back-end is written in Go, where you don't need to run multiple processes to achieve concurrency on a single machine.

For what it's worth, you can scale Graphite up considerably - we run with lots of users and lots of complex dashboards, and have no Graphite performance problems. I don't know all the specifics of our graphite deployment (our ops team would, of course), but it's a three-node cluster for graphite-web.

clohtd commented 9 years ago

Side note: Would love to see some information from your ops team on their deployment; diagram, configs, results, etc.

aalpern commented 9 years ago

Sure - I'll see what I can dig up.