[ { "operation": "modify-overwrite-beta", "spec": { "*": { "key-name": "=concat(@(1,params.sslProvider),' ',@(1,params.bufferType))" } } }, { "operation": "shift", "spec": { // pivot the data by benchmark name "*": { "key-name": { "*": { // match any value of name // go up the tree 3 levels // grab the whole array element and // write it to the output in an array // aka benchmark1[] or benchmark2[] "@(3,[&2])": "&.[]" } } } } }, { "operation": "shift", "spec": { // now group the relevant data "*": { // benchmark 1 or 2 "$": "&.name", "*": { // array of benchmark1 or 2 "params": { "messageSize": "&3.x[]" }, "primaryMetric": { "score": "&3.y[]", "scoreError": "&3.error_y.array[]" } } } } }, { // now convert from a map to a top level list "operation": "shift", "spec": { // benchmark1 or benchmark2 "*": "data.[#1]" } }, { // add graph default stuff "operation": "modify-default-beta", "spec": { "data": { "*": { "mode": "lines+markers", "type": "scatter" } }, "layout": { "autosize": true, "yaxis": { "type": "linear", "autorange": true, "title": "messages/sec" }, "title": "SslEngineBenchmark.sendMessage", "showlegend": true, "xaxis": { "title": "size of message", "type": "category", "autorange": true } } } } ]