[ 
https://issues.apache.org/jira/browse/MESOS-9543?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gavin updated MESOS-9543:
-------------------------
    Comment: was deleted

(was: www.rtat.net)

> Consider improving benchmark result output.
> -------------------------------------------
>
>                 Key: MESOS-9543
>                 URL: https://issues.apache.org/jira/browse/MESOS-9543
>             Project: Mesos
>          Issue Type: Improvement
>          Components: test
>            Reporter: Benjamin Bannier
>            Priority: Minor
>              Labels: integration
>
> We should consider improving how benchmarks report their results.
> As an example, consider 
> {{SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.DeclineOffers/1}}.
>  It logs lines like
> {noformat}
> [==========] Running 10 tests from 1 test case.
> [----------] Global test environment set-up.
> [----------] 10 tests from 
> SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test
> [ RUN      ] 
> SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.DeclineOffers/0
> Using 1000 agents and 1 frameworks
> Added 1 frameworks in 526091ns
> Added 1000 agents in 61.116343ms
> round 0 allocate() took 14.70722ms to make 0 offers after filtering 1000 
> offers
> round 1 allocate() took 15.055396ms to make 0 offers after filtering 1000 
> offers
> [       OK ] 
> SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.DeclineOffers/0 
> (135 ms)
> [ RUN      ] 
> SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.DeclineOffers/1
> {noformat}
> I believe there are a number of usability issues with this output format
>  * lines with benchmark data need to be {{grep}}'d from the test log 
> depending on some test-dependent format
>  * test parameters need to be manually inferred from the test name
>  * no consistent time unit is used throughout, but instead {{Duration}} 
> values are just pretty printed
> This makes it hard to consume this results in a generic way (e.g., for 
> plotting, comparison, etc.) as to do that one likely needs to implement a 
> custom log parser (for each test).
> We should consider introducing a generic way to log results from tests which 
> requires minimal intervention.
> One possible output format could be JSON as it allows to combine 
> heterogeneous data like in above example (which might be harder to do in 
> CSV). There exists a number of standard tools which can be used to filter 
> JSON data; it can also be read by many data analysis tools (e.g., 
> {{pandas}}). Example for above data:
> {noformat}
> {
>     "case": "SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test",
>     "test": "DeclineOffers/0",
>     "parameters": [1000, 1],
>     "benchmarks": {
>         "add_agents": [61.116343],
>         "add_frameworks": [0.0526091],
>         "allocate": [
>             {"round": 0, "time": 14.70722, "offers": 0, "filtering": 1000},
>             {"round": 1, "time": 15.055396, "offers": 0, "filtering": 1000}
>         ]
>     }
> }
> {noformat}
> Such data could be logged at the end of the test execution with a clear 
> prefix to allow aggregating data from many benchmark results in a single log 
> file with tools like {{grep}}. We could provide that in addition to what is 
> already logged (which might be generated by the same tool).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to