Ik weet niet zeker of het een volwassen genoeg benadering is voor een productiesysteem, maar ik had behoorlijk veel succes met het monitoren van databaseverkeer met behulp van een netwerkverkeerssniffer.
Stuur de ruwe data tussen de applicatie en de database naar een andere machine en decodeer en analyseer ze daar.
Ik gebruikte PostgreSQL en het decoderen van het verkeer en het omzetten in een stroom van databasebewerkingen die konden worden vastgelegd, was relatief eenvoudig. Ik kan me voorstellen dat het zou werken op elke database waar het pakketformaat is gedocumenteerd.
Het belangrijkste punt was dat het de database zelf niet extra belast.
Het was ook passieve monitoring, het registreerde alle activiteiten, maar kon geen bewerkingen blokkeren, dus misschien niet helemaal wat je zoekt.