Database monitoring
Know which query is slowing your database
Watch the health of PostgreSQL, MySQL, SQL Server, Redis, MongoDB and Elasticsearch through the collector. For PostgreSQL, MySQL and SQL Server, see the top queries, live samples with wait events, explain plans and database load, and which traced services call each database.
- PostgreSQL · MySQL · SQL Server
- Redis · MongoDB · Elasticsearch
- Explain plans
How it works
From a monitoring user to the query that matters
The collector reads what the database already records about itself, so there is nothing to install on the database server.
- 01ConnectPick an engine, enter its endpoint and a monitoring user, and choose the collector policy that can reach it.
- 02CollectHealth metrics arrive every 30 seconds, with top queries, live samples and plans where the engine supports them.
- 03Find the loadDatabase load shows active sessions by wait group: CPU, IO, lock, commit and other.
- 04Drill inOpen a normalized query to see its latency, executions, waits, explain plan and recent samples.
- 05TuneRecommendations flag expensive scans, missing or unused indexes, regressions and lock contention.
- 06Trace it backUsage from traces shows which services call each database, from the spans they already send.
Queries and plans
Every normalized query, with its waits and its plan
Top queries are grouped by their normalized text, so a query that runs a million times with different values is one row. Open one to see where its time goes and the plan the database chose.
- Live samples show each running query with its state, wait event and the user that ran it
- Explain plans flag sequential scans and expensive nodes
- Lock waits show which queries were blocked, and on what
Connect
One form per database, no agent on the server
Connecting a database adds it to a collector policy. The collector signs in as the monitoring user you create, and the queries it runs for monitoring stay out of your query views.
PostgreSQL
Top queries and plans need pg_stat_statements and the pg_monitor role; samples work without them.
MySQL
Query digests, samples and waits come from Performance Schema.
SQL Server
Live sessions and waits, and top queries from Query Store and the execution statistics.
Redis, MongoDB, Elasticsearch
Health metrics for memory, connections, replication, operations and more.
Usage from traces
See which services call each database
Instrumented services already send a span for every database call. Tracix reads them with the OpenTelemetry database conventions, for any engine, and shows throughput, errors and latency by database, operation and calling service.
- Works for databases you have not connected, as long as your services are traced
- Each database instance lists the services that call it, with their statements
- Ready-made monitors you can turn on cover deadlocks, replica lag, connections and cache hit rate
Better together
A slow query shows up everywhere at once
Database telemetry shares a workspace with traces, metrics and monitors, so you can follow a slow page to the query behind it and keep watching it afterwards.
- APM and distributed tracingDatabase spans sit in each trace, and the service map draws the databases each service calls.Learn more
- Metrics explorerEvery database metric is a card you can filter, break down or query with read-only SQL.Learn more
- Monitors and alertingTurn on catalog monitors for deadlocks, replica lag and connections, and route the alerts.Learn more
Supported engines
What Tracix reads from each database
Health metrics come from the OpenTelemetry receiver for each engine. Query-level monitoring covers the three relational engines.
| Engine | Health metrics | Top queries and plans | Samples and wait events | Replication lag | Schema objects |
|---|---|---|---|---|---|
| PostgreSQL | Yes | Yes | Yes | Yes | Tables, indexes, functions |
| MySQL | Yes | Yes | Yes | No | Tables |
| SQL Server | Yes | Yes | Yes | No | No |
| Redis | Yes | No | No | No | No |
| MongoDB | Yes | No | No | No | No |
| Elasticsearch | Yes | No | No | No | No |
Health metrics are collected every 30 seconds by default. Usage from traces works for any database your instrumented services call, whether or not it is connected.
Which databases does Tracix support?
Do I install anything on the database server?
What does PostgreSQL need for query monitoring?
Are the recommendations written by AI?
Connect your first database in minutes
Create a monitoring user, pick the collector policy that can reach the database, and the databases page fills in as the first collection runs.