Database observability
Diting parses database statements at the protocol layer. No driver install, no connection string change.
Supported databases
- MySQL
- PostgreSQL
- Oracle
- ClickHouse
- MongoDB
- Redis
Where data comes from
- The agent parses the database protocol on the wire
- Statement, plan, duration, rows returned and error code are recorded together
- Statements hang off spans, so they resolve to a service and an endpoint
QAN
QAN aggregates by statement digest and answers four questions:
- Which statement is slowest
- Which instance it is slow on
- Who calls it
- What the user experienced
Digests travel on db-query-digests; the collector writes them to diting.dwd_db_query_digest.
Instance discovery
Instances can be discovered automatically or registered by hand. Discovery records address, type, version and owning service.
Correlation
From a slow statement you can jump to:
- the owning trace and span
- logs in the same window
- the browser session and replay that triggered it
Limits
- Internal lock-wait detail still needs Performance Schema or the equivalent view
- Encrypted connections show metadata only unless TLS plaintext is enabled
- Statement text is masked according to configuration
Related: Traces and topology, Troubleshooting.