Skip to content

List of Kavmon checks in the "dbHealth" group

Checks in this group validate connections to databases (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 greater than 1 minute.

Check is skipped if:

  • Mongo isn't 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_URL isn't 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 isn't 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 isn't master.
  • Slave instance isn't online.
  • Slave instances have a lag of more than 10ms.

Check is skipped if:

  • Redis is configured in single instance mode.