List of Kavmon checks in the "dbHealth" group¶
Checks in this group validate connections to databasess (as well as RabbitMQ and Redis) and check replication status when running in High Availability mode.
"Mongo Connection Status"
The check opens a connection to Mongo and issues ping admin command.
Returns unhealthy if:
- The value of ok from the response is 0
- Any exception is thrown while executing the ping command.
"Mongo Sync Status"
The check opens a connection to Mongo, issues replSetGetStatus admin command and checks the replication status of the replica-set members.
Returns unhealthy if:
- The replication status results report that health is <1.0
- Mongo optime difference between primary and secondary replicas is/are greater than 1 minute.
Check is skipped if:
- Mongo is not running with a replica-set set up (determined by the presence of "replicaSet=" in the Mongo URI).
"Postgres TimescaleDB Connection Check"
This check verifies that the configured Postgres instance can be connected to.
Returns unhealthy if:
- Connection fails.
"RabbitMQ Vhosts Exist"
This check verifies that RabbitMQ vhosts configured to be used by the application are present. It uses RabbitAdminClient to get the available vhosts via RabbitMQ admin HTTP API, and uses RabbitAspect to get the configured vhosts.
Returns unhealthy if:
RABBITMQ_HTTP_URLis not configured.- RabbitMQ is missing any of the expected vhosts.
"Redis Connection Check"
This check verifies that the configured Redis instance can be connected to and has a "master" role.
Returns unhealthy if:
- Connection fails.
- Role returned is not master.
"Redis Sync Status"
This check verifies that the configured Redis instances are all replicating data with less than 10ms of lag.
Returns unhealthy if:
- Connection fails.
- Role returned is not master.
- Slave instance is not online.
- Slave instances have a lag of more than 10ms.
Check is skipped if:
- Redis is configured in single instance mode.