Filtering datasets is essential for plotting and aggregating statistics, especially when the number of queries is large. To this end, a custom filtering mechanism is available to but is somewhat limited in it's functionalities.
We should use software that already excels at filtering a YAML stream.
There is a curated list of JSON processor.
Quick reminder, the YAML Dataset is a subset of JSON so we can use tools for JSON format.
There is yq which uses the jq command-line processor. The filtering is simple and intuitive. Did not benchmark it's speed though. It could be piped in c++ for development speed, like it is currently done for GNUPlot.
A better alternative would be to use rapidyaml instead of yaml-cpp and c4conf for filtering which uses rapidyaml and was created by the same author. The downside is that changes a lot of the code that relies on yaml-cpp. On the upside, much faster and efficient then yaml-cpp, tested extensively and against a yaml test-suite.
Filtering datasets is essential for plotting and aggregating statistics, especially when the number of queries is large. To this end, a custom filtering mechanism is available to but is somewhat limited in it's functionalities.
We should use software that already excels at filtering a YAML stream.
There is a curated list of JSON processor.
Quick reminder, the YAML Dataset is a subset of JSON so we can use tools for JSON format.
There is yq which uses the jq command-line processor. The filtering is simple and intuitive. Did not benchmark it's speed though. It could be piped in c++ for development speed, like it is currently done for GNUPlot.
A better alternative would be to use rapidyaml instead of yaml-cpp and c4conf for filtering which uses rapidyaml and was created by the same author. The downside is that changes a lot of the code that relies on yaml-cpp. On the upside, much faster and efficient then yaml-cpp, tested extensively and against a yaml test-suite.