Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Graphical interface to see individual request level graph #144

Closed
sadhasivam opened this issue Apr 22, 2014 · 9 comments
Closed

Graphical interface to see individual request level graph #144

sadhasivam opened this issue Apr 22, 2014 · 9 comments

Comments

@sadhasivam
Copy link

to understand this request/response pattern clearly we would like to know each request/resposne time points data.

if we have a graphical or data points exposed for each task request/response level . This would enable us to understand after how many request server request slows down and where server maintains steady volume.

@sanga
Copy link
Contributor

sanga commented Apr 22, 2014

Do I correctly interpret what you ask as: I want to see how the locust statistics change over time?

If so at least one solution for this is to set up something like Graphite and send the metrics from locust to graphite. That's what we do. Actually as our server cluster already has a Graphite node, this makes it especially nice as one can compare locust metrics (i.e. 'perceived/measured performance' with internal metrics like cpu usage). Even if you didn't have this it would still be nice IMO :) And you could set up your own graphite server (on the locust node) pretty easily.

A super-easy, ghetto way of doing this would just to have another process polling the stats API endpoint and logging those to a file.

@sanga
Copy link
Contributor

sanga commented Apr 22, 2014

Personally, I think it's out of scope for Locust to include this kind of functionality by default (I'm guessing @heyman would agree). It could of course also be implemented as a plugin that would plot stuff in something like Rickshaw or some other js plotting lib but I think something like graphite is even nicer.

As a note here's what you can get with Graphite (and a bit of tweaking).
perf results2

@sadhasivam
Copy link
Author

This is pretty awesome. is there any documentation on how to integrate locust with graphite. i am sorry i am new to graphite.

@sanga
Copy link
Contributor

sanga commented Apr 23, 2014

There are docs for graphite (see here: http://graphite.readthedocs.org/en/latest/). I may have gotten slightly ahead of myself though. I'd forgotten that I have a slightly patched locust running locally that allows running plugins. And the plugin that we have for pushing metrics from locust to graphite is not public (yet - it shouldn't be a problem to release, but the plugin mechanism in locust isn't yet clear). I'll try to push this forward. In the meantime, if you just want to quickly make progress then I suggest just making a 5 line bash script that hits the locust stats url and logs that to disk. Then you could plot those results after your test.

@heyman
Copy link
Member

heyman commented Apr 23, 2014

@sanga, Nice graphs! Yep, I think it would be out of scope for Locust to provide graphite integration. It would definitely be nice with graphs in locust though, but ideally I think it should be implemented as a plugin. (see #34 )

@pglass
Copy link
Contributor

pglass commented Oct 27, 2014

I've got a module for use with Locust that sends the response times and requests per second for each request type to a Graphite server, here: https://github.com/pglass/designate-locust/blob/master/graphite_client.py. The master uses the slave_report event to receive stats, which are formatted into messages and sent to Graphite. Since it relies on slave_report, it only actually sends any stats when Locust is running in distributed mode, and I used carbon-aggregator (a Graphite service) to consolidate data gathered from separate slaves.

This produces some graphs that look like:
screen shot 2014-10-24 at 11 22 19 am

@yoanisgil
Copy link

Not sure if this still of any interest but I have created a very basic working demo which integrates locustio with grafana. It heavily uses Docker to ease the integration/communication with required backends but there is also a docker-compose file which should get users started in no time. The source code can be found here:

https://github.com/yoanisgil/locust-grafana

@tkahnoski
Copy link

Just thinking from an architectural level, you'll want the same graphs on your production system from real use so it would be better to focus on the monitoring system versus relying on locust to do all the reporting that way when you compare production traffic profiles and traffic generated by locust your comparing the same thing.

@justiniso
Copy link
Member

See #509

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants