-
Notifications
You must be signed in to change notification settings - Fork 313
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
Add ability to continuously stream metrics #217
Comments
This is a tricky one. The reason why Rally does not stream metrics is to minimize any overhead. For our own long-running benchmarks, we use multiple iterations ( |
I agree it is a tricky one. Writing metrics directly to a Elasticsearch could make the benchmark execution sensitive to back-pressure applied from the metrics store. What I have done in the past is to stream the records to a file in JSON format as they are generated. This has allowed me to set up filebeat/Logstash to tail this file and index them as quickly as possible. Would it be possible to have 'file' as a third mode in order to add flexibility? This also opens up for post-processing, which would be a useful option. |
The work done in #278 should help when implementing this. That change makes it relatively easy to send request and maybe even system metrics once a task has finished (instead of doing all this at the end of a benchmark). However, streaming still remains extremely tricky given that the throughput calculation is done via a sliding window. So I think we will implement this in two steps:
|
Rally will store request metrics in microbatches every 30 seconds (not configurable). This includes service time, latency and throughput samples and all system metrics in case Rally is not only used as a load generator. All postprocessing is done on the coordinator machine. Thus, we don't influence performance of load generators. |
Based on tests it looks like all metrics currently are written to the metrics store at the end of the challenge. For long-running benchmarks this is impractical as it gives a potentially vary large amount of data to index at the end and makes it hard to see how the benchmark is doing during the execution.
It would be very useful to be able to stream metrics through bulk requests to the metrics store as the benchmark progresses.
The text was updated successfully, but these errors were encountered: