If a relay_commits is possible at the same time as relay_group_commits we can get an approximate graph of active threads over time. Is slave_parallel_workers_reached still useful then?
s/_worker/_thread/g
Not sure slave_parallel_workers_waiting helps, all but one thread will be waiting at some point. Please correct me if I'm missing something. Having an indicator or more relay log events waiting in a group but are restricted by slave_parallel_threads might be useful (parallel_in_order_group_thread_exhaustion?). On thread utilisation the original busy vs wait time vs rollback probably covers that well enough.
Further down the track for the breakdown of which slave_parallel_mode decision each transaction is reaching (and how many per relevant category are rolled back).
And then there is monitoring the out of order commits from slave_domain_parallel_threads and the limit it imposes however I'm thinking that presenting an information_schema table for that per domain if possible.
from
MDEV-7396- max consecutive parallel deadlocks is probably useful