Back to Skywalking

MongoDB monitoring

docs/en/setup/backend/backend-mongodb-monitoring.md

10.4.010.5 KB
Original Source

MongoDB monitoring

SkyWalking leverages mongodb-exporter for collecting metrics data from MongoDB. It leverages OpenTelemetry Collector to transfer the metrics to OpenTelemetry receiver and into the Meter System.

Data flow

  1. The mongodb-exporter collects metrics data from MongoDB. The exporter works side by side with the MongoDB node.
  2. OpenTelemetry Collector fetches metrics from mongodb-exporter via Prometheus Receiver and pushes metrics to SkyWalking OAP Server via OpenTelemetry gRPC exporter.
  3. The SkyWalking OAP Server parses the expression with MAL to filter/calculate/aggregate and store the results.

Setup

  1. Setup mongodb-exporter.
  2. Set up OpenTelemetry Collector. The example for OpenTelemetry Collector configuration, refer to here.
  3. Config SkyWalking OpenTelemetry receiver.

MongoDB Monitoring

MongoDB monitoring provides multidimensional metrics monitoring of MongoDB clusters as Layer: MONGODB Service in the OAP. In each cluster, the nodes are represented as Instance.

MongoDB Cluster Supported Metrics

Monitoring PanelUnitMetric NameDescriptionData Source
Uptime (day)daymeter_mongodb_cluster_uptimeMaximum uptime of nodes in the clustermongodb-exporter
Data Size (GB)GBmeter_mongodb_cluster_data_sizeTotal data size of the clustermongodb-exporter
Collection Countmeter_mongodb_cluster_collection_countNumber of collection of the clustermongodb-exporter
Object Countmeter_mongodb_cluster_object_countNumber of object of the clustermongodb-exporter
Document Total QPSmeter_mongodb_cluster_document_avg_qpsTotal document operations rate of nodesmongodb-exporter
Operation Total QPSmeter_mongodb_cluster_operation_avg_qpsTotal operations rate of nodesmongodb-exporter
Total Connectionsmeter_mongodb_cluster_connectionsCluster total connections of nodesmongodb-exporter
Cursor Totalmeter_mongodb_cluster_cursor_avgTotal Opened cursor of nodesmongodb-exporter
Replication Lag (ms)msmeter_mongodb_cluster_repl_lagRepl set member avg replication lag, this metric works in repl modemongodb-exporter
DB Total Data Size (GB)GBmeter_mongodb_cluster_db_data_sizeTotal data size of every databasemongodb-exporter
DB Total Index Size (GB)GBmeter_mongodb_cluster_db_index_sizeTotal index size per of every databasemongodb-exporter
DB Total Collection Countmeter_mongodb_cluster_db_collection_countTotal collection count of every databasemongodb-exporter
DB Total Index Countmeter_mongodb_cluster_db_index_countTotal index count of every databasemongodb-exporter

MongoDB Node Supported Metrics

Monitoring PanelUnitMetric NameDescriptionData Source
Uptime (day)daymeter_mongodb_node_uptimeUptime of the nodemongodb-exporter
QPSmeter_mongodb_node_qpsOperations per second of the nodemongodb-exporter
Latencyµsmeter_mongodb_node_op_rate
meter_mongodb_node_latency_rateLatency of operationsmongodb-exporter
Memory Usage%meter_mongodb_node_memory_usageMemory usage percent of RAMmongodb-exporter
Versionmeter_mongodb_node_versionMongoDB edition and versionmongodb-exporter
ReplSet Statemeter_mongodb_node_rs_stateRepl set state of the node, this metric works in repl modemongodb-exporter
CPU Usage (%)%meter_mongodb_node_cpu_total_percentageCpu usage percent of the nodemongodb-exporter
Network (KB/s)KB/smeter_mongodb_node_network_bytes_in
meter_mongodb_node_network_bytes_outInbound and outbound network bytes of nodemongodb-exporter
Memory Free (GB)GBmeter_mongodb_node_memory_free_kb
meter_mongodb_node_swap_memory_free_kbFree memory of RAM and swapmongodb-exporter
Disk (GB)GBmeter_mongodb_node_fs_used_size
meter_mongodb_node_fs_total_sizeUsed and total size of diskmongodb-exporter
Connectionsmeter_mongodb_node_connectionsConnection nums of nodemongodb-exporter
Active Clientmeter_mongodb_node_active_total_num
meter_mongodb_node_active_reader_num
meter_mongodb_node_active_writer_numCount of active reader and writermongodb-exporter
Transactionsmeter_mongodb_node_transactions_active
meter_mongodb_node_transactions_inactiveCount of transactions running on the nodemongodb-exporter
Document QPSmeter_mongodb_node_document_qpsDocument operations per secondmongodb-exporter
Operation QPSmeter_mongodb_node_operation_qpsOperations per secondmongodb-exporter
Repl Operation QPSmeter_mongodb_node_repl_operation_qpsRepl operations per secondmongodb-exporter
Operation Latency (µs)µsmeter_mongodb_node_op_rate
meter_mongodb_node_latency_rateLatencies for different operation typemongodb-exporter
Cursormeter_mongodb_node_cursorOpened cursor of the nodemongodb-exporter
Server Status Memory (MB)MBmeter_mongodb_node_mem_virtual
meter_mongodb_node_mem_residentVirtual and resident memory of the nodemongodb-exporter
Assertsmeter_mongodb_node_assertsThe rate of raised assertionsmongodb-exporter
Repl Buffer Countmeter_mongodb_node_repl_buffer_countThe current number of operations in the oplog buffermongodb-exporter
Repl Buffer Size (MB)MBmeter_mongodb_node_repl_buffer_size
meter_mongodb_node_repl_buffer_size_maxThe maximum size of the oplog buffermongodb-exporter
Queued Operationmeter_mongodb_node_queued_operationThe number of operations queued because of a lockmongodb-exporter
getLastError Write Nummeter_mongodb_node_write_wait_num
meter_mongodb_node_write_wait_timeout_numThe number of write concern operationmongodb-exporter
getLastError Write Time (ms)msmeter_mongodb_node_write_wait_timeThe wait time of write concern operationmongodb-exporter

Customizations

You can customize your own metrics/expression/dashboard panel. The metrics definition and expression rules are found in /config/otel-rules/mongodb/mongodb-cluster.yaml, /config/otel-rules/mongodb/mongodb-node.yaml. The MongoDB dashboard panel configurations are found in /config/ui-initialized-templates/mongodb.