常用监控项及说明
当我们监控mongodb实例时,大约有300多项的监控指标,通常我们可以关注以下的20项指标就够了
监控项 | 说明 |
---|---|
mongodb_memory | 内存占用(MiB) |
mongodb_mongod_op_latencies_latency_total | 累计操作耗时(毫秒) |
mongodb_mongod_op_latencies_ops_total | 累计操作次数 |
mongodb_op_counters_total | 累计接收的操作请求次数(即使操作不成功也会增加) |
mongodb_connections | 连接数 |
mongodb_mongod_metrics_cursor_open | 打开游标数量 |
mongodb_mongod_metrics_document_total | 累计文档操作次数 |
mongodb_mongod_global_lock_current_queue | 当前排队等待获取锁的操作个数 |
mongodb_mongod_metrics_query_executor_total | 查询和查询计划评估过程扫描的(索引或文档)条目总数 |
mongodb_asserts_total | 累计断言错误次数 |
mongodb_mongod_metrics_get_last_error_wtime_num_total | 累计getLastError操作数量 |
mongodb_mongod_wiredtiger_cache_bytes | 当前缓存数据大小(byte) |
mongodb_mongod_wiredtiger_cache_bytes_total | 写入或读取的缓存数据大小(byte) |
mongodb_mongod_wiredtiger_cache_pages | 当前缓存页数量 |
mongodb_mongod_wiredtiger_cache_evicted_total | 累计缓存移除页数量 |
mongodb_extra_info_page_faults_total | 累计缺页中断次数 |
mongodb_ss_network_bytesOut | 累计发送网络流量(byte) |
mongodb_ss_network_bytesIn | 累计接收网络流量(byte) |
mongodb_mongod_replset_member_replication_lag | 副本集成员主从延迟(秒) |
mongodb_memory
- mongodb_memory 指标表示 MongoDB 数据库实例使用的内存量。这个指标可以帮助监控系统管理员查看 MongoDB 的内存使用情况,并对系统的内存进行优化。
- resident 和virtual
- resident 指的是进程在物理内存中占用的空间,即进程实际使用的物理内存。
- virtual 指的是进程在虚拟内存中占用的空间,即进程所占用的总内存,包括物理内存和交换空间。
- 通常来说,如果 resident 值很大,说明进程实际使用的物理内存很多,这可能表示系统的内存不足,或者进程的内存使用不合理。如果 virtual 值很大,说明进程占用的总内存很多,这可能表示进程在使用较多的交换空间,或者系统的总内存不足。
- 总之,resident 和 virtual 指标可以帮助你了解进程对内存的使用情况,从而为进行性能优化提供重要的参考信息。
- 获取代码:
例:
mongodb_memory{job="mongodb", service="mongodb", team="dba", type="resident"}
34957
mongodb_memory{job="mongodb", service="mongodb", team="dba", type="virtual"}
49537
mongodb_mongod_op_latencies_latency_total
-
mongodb_mongod_op_latencies_latency_total 指标中的 read、write、command、transactions 分别表示 MongoDB 数据库实例中的不同操作类型的平均响应时间。
-
read write command transactions
-
read 表示读操作的平均响应时间。
-
write 表示写操作的平均响应时间。
-
command 表示命令操作的平均响应时间。
-
transactions 表示事务操作的平均响应时间。
-这个指标可以帮助监控系统管理员了解 MongoDB 数据库实例中各类操作的响应时间,并对系统进行性能优化。
- 获取代码:
avg(rate(mongodb_mongod_op_latencies_latency_total{team="dba"}[5m])) by (instance)
avg(rate(mongodb_mongod_op_latencies_latency_total{team="dba",type="read"}[5m])) by (instance)
avg(rate(mongodb_mongod_op_latencies_latency_total{team="dba",type="write"}[5m])) by (instance)
avg(rate(mongodb_mongod_op_latencies_latency_total{team="dba",type="command"}[5m])) by (instance)
avg(rate(mongodb_mongod_op_latencies_latency_total{team="dba",type="transactions"}[5m])) by (instance)
mongodb_op_counters_total
-
表示 MongoDB 数据库实例中每秒执行的不同类型操作的数量。
-
command 表示每秒执行的命令操作的数量。
-
getmore 表示每秒执行的 getmore 操作的数量。
-
query 表示每秒执行的查询操作的数量。
-
update 表示每秒执行的更新操作的数量。
-
delete 表示每秒执行的删除操作的数量。
-
insert 表示每秒执行的插入操作的数量。
-
获取代码:
avg(rate(mongodb_op_counters_total{team="dba", type="getmore"}[5m])) by (instance)
avg(rate(mongodb_op_counters_total{team="dba", type="insert"}[5m])) by (instance)
avg(rate(mongodb_op_counters_total{team="dba", type="query"}[5m])) by (instance)
avg(rate(mongodb_op_counters_total{team="dba", type="update"}[5m])) by (instance)
avg(rate(mongodb_op_counters_total{team="dba", type="command"}[5m])) by (instance)
avg(rate(mongodb_op_counters_total{team="dba", type=""}[5m])) by (instance)
mongodb_connections
- 表示 MongoDB 数据库实例的连接相关信息。
- totalCreated 表示 MongoDB 数据库实例中已经创建的连接总数。
- current 表示 MongoDB 数据库实例中当前活动的连接数量。
- available 表示 MongoDB 数据库实例中当前可用的连接数量。
- 获取代码:
mongodb_connections{ state="available"}
mongodb_connections{ state="current"}
mongodb_connections{ state="totalCreated"}
cache_dirty_percent
- mongodb_cache_dirty_percent 指标表示 MongoDB 数据库实例中缓存页面中脏页面(dirty pages)所占的百分比。脏页面指的是已经修改但尚未写回磁盘的页面。
- 获取代码:
mongodb_mongod_wiredtiger_cache_bytes_total
- 正在read ,write的缓存占用的内存总量(以字节为单位)
- 获取代码:
avg(rate(mongodb_mongod_wiredtiger_cache_bytes_total{team="dba", type="read"}[5m])) by (instance)
avg(rate(mongodb_mongod_wiredtiger_cache_bytes_total{team="dba", type="written"}[5m])) by (instance)
mongodb_asserts_total
- 错误次数
- 获取代码:
sum(rate(mongodb_asserts_total{team="dba"} [5m])) by (instance)
mongodb_mongod_global_lock_current_queue
- 当前排队等待获取锁的操作个数
- 获取代码:
mongodb_mongod_global_lock_current_queue{team="dba", type="total"}
mongodb_extra_info_page_faults_total
- 累计缺页中断次数
- 获取代码:
sum(rate(mongodb_extra_info_page_faults_total{team="dba"}[5m])) by (instance)
mongodb_mongod_replset_member_replication_lag
- 副本集成员主从延迟(秒)
- 获取代码:
max(mongodb_mongod_replset_member_replication_lag{team="dba" }) by (instance)
mongodb_ss_network_bytesOut
- 累计发送网络流量(byte)
- 获取代码:
sum(rate(mongodb_ss_network_bytesOut{team="dba"}[5m])) by (instance)
mongodb_ss_network_bytesIn
- 累计接收网络流量(byte)
- 获取代码:
sum(rate(mongodb_ss_network_bytesIn{team="dba"}[5m])) by (instance)
指标分类及标识
-
给各项指标做L4评分标准如下:
-
最终形成MongoDB性能展示Dashboard