Feature

Your Whole Database Tier, From the Agent You Already Installed

PostgreSQL, MySQL and MariaDB with Galera cluster state, Redis and Valkey, and Memcached - each read over its own native interface. No postgres_exporter to deploy, no Grafana dashboards to build, and nothing extra running next to your database.

Built for teams monitoring production infrastructure

Start free trial

No credit card · 2-minute setup

PostgreSQL + MySQL Redis + Memcached No exporters

Database tier

PostgreSQL 42 connections
MariaDB (Galera) Primary / Synced
Redis hit rate 99.1%
Memcached evictions 0/s
MySQL (replica) auth failed
42 connections
99.1% hit rate
Primary/Synced
  • Four Engines, One Agent

    PostgreSQL, MySQL/MariaDB, Redis/Valkey and Memcached add 62 metrics to what the agent already reports for the host itself. No exporter to deploy, and nothing to scrape.

  • It Says Why, Not Just Down

    PostgreSQL and MySQL carry a three-state verdict: reachable, unreachable, or a config error when the server answers but your credentials or role are wrong. An amber you can fix beats a red you have to guess at.

  • Galera Without a Second Tool

    wsrep cluster state comes over the connection the agent already has. Lost quorum, a node stuck outside Synced, or a member that dropped out is one alert - the one an HA control plane is actually built around.

Deep dive

No Exporters, No Sidecars, No Scrape Config

The usual way to monitor a database is to run something next to it - postgres_exporter, mysqld_exporter, redis_exporter - point a scraper at each one, then build the dashboards yourself. That is three more processes to install, keep upgraded and monitor in their own right, before you have seen a single metric.

Fivenines reads each engine over the interface it already exposes: the pg_stat_* views for PostgreSQL, SHOW GLOBAL STATUS for MySQL and MariaDB, INFO for Redis and Valkey, and a single stats command over TCP for Memcached. You flip a toggle, give it credentials where the engine needs them, and the metrics land next to the CPU and disk figures for the same box.

All four collectors run on Linux, Windows and macOS, so the same toggle works wherever the engine does.

What Each Engine Reports

PostgreSQL

Connections split by state, including idle-in-transaction. Cache hit ratio, commits and rollbacks, deadlocks and locks by type, total and per-database size, and replication lag. The per-database breakdown means a noisy tenant is visible as itself rather than as a bump in a server-wide total.

MySQL / MariaDB

Connections against max_connections, queries and slow queries, aborted connects, InnoDB buffer pool hit ratio and usage, uptime, replication lag and whether the replica threads are actually running. Connect over TCP or a Unix socket, which is what cPanel and Plesk hosts expect.

Galera cluster state

Cluster size and status, the local node's wsrep state, flow-control pause time and average receive-queue depth. Back-pressure shows up as a chart before it shows up as a desynced node.

Redis / Valkey

Memory used against maxmemory as a percentage, a hit ratio computed over the window you are looking at rather than since boot, evicted and expired keys, ops per second, blocked clients, fragmentation, role and replication offset lag per replica, and how long ago the last RDB save succeeded.

Memcached

Hit ratio, memory used against the configured limit, evictions, expired-unfetched keys, get and set rates, current connections and uptime. The LAMP object cache, watched as itself.

The host underneath

All of it sits beside the CPU, memory, disk I/O and network figures for the same machine, so a slow query and a saturated disk are on one timeline instead of in two products.

Deep dive

Reachable, Unreachable, or Misconfigured

PostgreSQL and MySQL report a three-state verdict rather than a boolean. Reachable means connected and collecting. Unreachable means refused, timed out or unroutable - the network-shaped failure, and the one worth paging on. A config error means the server answered and then rejected the agent: a wrong password, a role missing a grant. That last one is the common case after a credential rotation, and calling it an outage would send someone hunting a problem that is a two-field fix in Settings.

Redis and Memcached are deliberately simpler. They report metrics and nothing else, so a failed collection leaves a gap in the charts rather than a verdict - which is the honest representation when the agent has nothing to say. Put thresholds on their metrics to catch a cache under pressure, and be aware that a threshold reads a value: it will not fire for a cache that has stopped answering at all, because there is no value to read. For that, watch the port or the systemd unit - both are triggers in the same workflow builder.

PostgreSQL, MySQL and Memcached each take a host and a port, so the agent can watch a container's published port, a database on another machine, or a managed instance. Redis and Valkey are the exception: the agent polls a port on the machine it runs on.

From Install to First Alert

1

Step 1

Install the agent

One command, about two minutes. If you are already monitoring the server, skip this step entirely - the database collectors ride the agent you have.

2

Step 2

Turn the engine on

Flip the toggle in the instance settings and fill in what that engine needs: a PostgreSQL user with read access to the pg_stat_* views, a MySQL user with PROCESS and REPLICATION CLIENT, an optional Redis password. Memcached needs no credentials at all.

3

Step 3

Watch it, then alert on it

Metrics appear on the instance page straight away. PostgreSQL, MySQL/MariaDB and Redis/Valkey each ship a one-click dashboard template and can go on any custom dashboard; Memcached is instance-page only for now. Add the unreachable and Galera templates from the workflow gallery, then set thresholds on whichever metrics matter to you.

Deep dive

Alerting That Knows the Difference Between Down and Broken

Three alerts ship as one-click workflow templates: PostgreSQL unreachable, MySQL unreachable, and a degraded Galera cluster. Each opens one incident for the instance it is about and closes it on its own when the condition clears.

The Galera one is the interesting one. It fires while the cluster is anything other than Primary, while the local node is anything other than Synced, or - if you tell it how many members to expect - while the cluster is short a member. If the server becomes unreachable it hands off to the MySQL alert rather than firing a second time about a cluster it can no longer see, so a dead node pages you once.

Everything else is a metric threshold, on any of the 62 series: Redis memory closing on maxmemory, a hit ratio collapsing, replication lag climbing, Memcached evicting under pressure. The same sustained-duration rules, escalation gates and maintenance windows apply as to any other alert. Thresholds answer "this is going wrong"; for "this stopped answering" on Redis or Memcached, add a port or systemd-unit trigger, since a threshold needs a value to compare.

Alerts go where your team works: email, Slack, Microsoft Teams, Telegram, Discord, Pushover, PagerDuty or webhooks. Which of those you can use depends on your plan - email, Telegram and Discord are on every plan, and the rest unlock as you move up.

Common Database Monitoring Scenarios

LAMP and LEMP hosting

MySQL or MariaDB next to Apache, Nginx and PHP-FPM on the same box, all monitored as themselves. When a customer site is slow, you can tell an exhausted worker pool from a database out of connections without logging in.

HA control plane

A three-node MariaDB Galera cluster behind an OpenStack or similar control plane. Quorum and per-node wsrep state are the alert; flow control and receive-queue depth are the early warning that gets you there first.

Cache-backed application

Redis or Valkey for sessions and queues, Memcached for the object cache. Watch memory against the configured limit and the eviction rate, so you find out you have outgrown the cache before your users do.

How It Compares

How It Compares
Approach Setup Per Engine Galera State Dashboards Alerting
Prometheus + Grafana 2-4 hours One exporter each Exporter needed Build your own Manual rules
Zabbix 1-2 hours Official templates Template-based Template-based Supported
Engine CLI (psql, redis-cli) Built-in Live only Live only Not supported Not supported
Fivenines 2 min 4 built in wsrep + alert 3 templates Built-in

Included on every plan

No per-database charge and no add-on to buy - a monitored database is part of the instance the agent runs on.

Frequently Asked Questions

Which databases and caches can Fivenines monitor? +
Four engines, all from the same agent: PostgreSQL, MySQL and MariaDB (including Galera cluster state), Redis and Valkey, and Memcached. Together they add 62 metrics to the ones the agent already collects for the host itself - connections, cache hit ratios, replication lag, buffer pool usage, evictions, memory against the configured limit, and cluster state. Valkey is explicitly supported: it answers the same INFO command as Redis, so it is monitored identically.
Do I need to run an exporter or a sidecar? +
No. There is no postgres_exporter, mysqld_exporter or redis_exporter to deploy, and nothing to scrape. The agent already on your server talks to each engine over its own interface - the pg_stat_* views for PostgreSQL, SHOW GLOBAL STATUS for MySQL and MariaDB, INFO for Redis and Valkey, and a single stats command over TCP for Memcached. You give PostgreSQL a user with read access to the pg_stat_* views and MySQL a user with PROCESS and REPLICATION CLIENT; Memcached needs no credentials at all. One prerequisite worth knowing: MySQL and MariaDB are read through the mysql or mariadb command-line client, so that client has to be present on the machine running the agent. It ships with the server package, so a host running the database already has it; a host monitoring a remote database may need it installed.
Can it monitor a database running in Docker or on another server? +
For PostgreSQL, MySQL/MariaDB and Memcached, yes - each takes a host and a port, so the agent can watch a container's published port, a database on a separate machine, or a managed instance, as long as it can reach it. MySQL and MariaDB additionally accept a Unix socket path, which is how shared-hosting panels such as cPanel and Plesk expect you to connect. Redis and Valkey are the exception: the agent polls a port on the machine it runs on, so install the agent on the Redis host.
What can I be alerted on? +
Three things ship as one-click workflow templates: PostgreSQL unreachable, MySQL unreachable, and a degraded Galera cluster. On top of that, every one of the 62 metrics can carry a metric threshold - Redis memory against maxmemory, a collapsing cache hit ratio, replication lag, Memcached evictions - with the same sustained-duration and escalation rules as any other alert. Alerts route to email, Slack, Microsoft Teams, Telegram, Discord, Pushover, PagerDuty or webhooks, depending on your plan - email, Telegram and Discord are available on every plan.
Does it understand MariaDB Galera clusters? +
Yes, and it is the alert most HA deployments actually need. The agent reads the wsrep_* status variables from the same connection it already uses, and the Galera trigger fires while the cluster is anything other than Primary, while this node is anything other than Synced, or - if you tell it how many members to expect - while the cluster is short a member. It resolves on its own when the cluster is Primary and Synced again. Flow-control pause time and receive-queue depth are charted alongside, so you can see back-pressure building before a node desyncs.

Monitor your database tier without deploying a single exporter

14-day trial. No credit card required.

No credit card · 2-minute setup · Cancel anytime