The data_locks and data_lock_waits performance_schema tables, available in MySQL 8.0, is a bit different from the information_schema innodb_locks and innodb_lock_waits. The main difference is that the performance_schema tables show locks even when nothing is waiting for them. It would be even better to be able to identify individual row locks.
The usefulness of this type of monitoring is when having complex transactions which might interlock and cause deadlocks. This is often an issue when migrating from other database systems where locking is different than in MariaDB.