MongoDB

Setup

The Percona MongoDB Exporter is recommended to export MongoDB metrics in Prometheus format.

The docker version of the exporter can be started as follows:

docker run -d -p 9216:9216 -p 17001:17001 percona/mongodb_exporter:0.39 --mongodb.uri=mongodb://mongodb:17001

The MONGODB_USER and MONGODB_PASSWORD can be used to pass credentials. Alternatively, you can use the MongoDB exporter Prometheus community helm chart.

For details on the various options in the exporter, please take a look at the usage guide.

Metrics

Request and Errors

MetricKey Performance Indicator
mongodb_op_counters_total

Request Rate

rate(mongodb_op_counters_total[5m])

mongodb_op_counters_repl_total
mongodb_mongod_op_counters_repl_total

Request Rate

rate(...[5m])

mongodb_mongod_op_latencies_ops/latencies_total

Latency Average

rate(mongodb_mongod_op_latencies_latency_total[5m])
/
rate(mongodb_mongod_op_latencies_ops_total[5m])

Resource Metrics

MetricKey Performance Indicator

Connection Counts mongodb_ss_connections

Connection Usage

mongodb_ss_connections{conn_type="current"} 
  / ignoring(conn_type)
(mongodb_ss_connections{conn_type="current"} + ignoring(conn_type) mongodb_ss_connections{conn_type="available"})

Alerts

KPIAlert

Request Rate

RequestRateAnomaly

Latency Average

LatencyAverageAnomaly, LatencyAverageBreach

Connection Usage

Saturation with a severity level of critical when utilization exceeds 90%

Failure Alerts

AlertDescription

MongodbDown

Fires when Mongo DB is down

MongodbReplicaMemberUnhealthy

Fires when a replica in a replication set is unhealthy

MongodbReplicationLag

Fires when the replication lag of a secondary is more than a configured time duration. Severity is set to warning when lag > 60s and critical when lag > 240s.

MongodbReplicationHeadroom

Fires when the replication lag of a secondary is more than a configured time duration. Severity is set to warning when lag > 60s and critical when lag > 240s.

MongodbTooManyCursorsOpen

Fires when the number of open cursors is above a given threshold. By default, the threshold is set to 10000. Severity is set to warning.

MongodbTooManyCursorTimeouts

Fires if the rate of cursor timeout is above a certain threshold. By default, the threshold is set to 100. Severity is set to warning.

MongodbInternalErrors

Fires when the count of internal errors keeps growing for 5m. Severity is set to warning

MongodbUserErrors

Fires when the count of user errors keeps growing for 5m. Severity is set to warning.

ReadRequestsQueueingUp

If the read queue keeps growing for 5m. Severity is set to warning.

WriteRequestsQueueingUp

If the write queue keeps growing for 5m. Severity is set to warning.

Dashboard

Last updated