All docs

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:

  1. Which statement is slowest
  2. Which instance it is slow on
  3. Who calls it
  4. 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.