原文链接:https://docs.mongodb.com/manual/reference/command/serverStatus/index.html
定义
行为
输出
*定义
==serverStatus
serverStatus命令返回一个文档,该文档提供数据库状态的概述。监控应用程序可以定期运行此命令收集有关该实例的统计信息。
db.runCommand( { serverStatus: 1 } )
值(即1)不会影响命令的操作。同时mongo shell提供了db.serverStatus()封装该命令。
注:serverStatus的大部分输出也动态显示在mongostat命令中。可参阅 mongostat命令。
*行为
默认情况下,serverStatus在其输出中排除repl文档中的一些内容。
要输出默认排除的字段,需要明确定义顶级字段,在命令中设置顶级字段为1。要排除默认包含的字段,在命令中设置顶级字段为0。
例如,在输出中排除repl, metrics, locks信息。
db.runCommand( { serverStatus: 1, repl: 0, metrics: 0, locks: 0 } )
在输出中包含所有repl信息:
db.runCommand( { serverStatus: 1, repl: 1 } )
输出
注意:输出字段取决于:MongoDB的版本,底层的操作系统平台,存储引擎,和节点类型(包括mongos,mongod或 副本集成员)。
serverStatus在不同MongoDB版本的输出字段,请参阅相应版本的MongoDB手册。
从MongoDB 4.0.6开始,serverStatus包括:
opReadConcernCounters
opWriteConcernCounters(需要reportOpWriteConcernCountersInServerStatus参数设置为true)。
metrics.repl.apply.batchSize
从MongoDB 4.0开始,serverStatus输出中包含 shardingStatistics。
从MongoDB 3.6开始,serverStatus不再输出 rangeDeleter部分。
在MongoDB中3.0开始,serverStatus不再输出 workingSet,indexCounters以及recordStats部分。
实例信息:
"host" : <string>,
"advisoryHostFQDNs" : <array>,
"version" : <string>,
"process" : <"mongod"|"mongos">,
"pid" : <num>,
"uptime" : <num>,
"uptimeMillis" : <num>,
"uptimeEstimate" : <num>,
"localTime" : ISODate(“"),
host: 系统的主机名。在Unix Linux系统中,与hostname命令的输出相同。
advisoryHostFQDNs: 3.2版本新功能,全限定域名数组
version:当前MongoDB进程的MongoDB版本。
process:当前的MongoDB进程,可能的值为mongos或mongod
pid: 进程的id号
uptime: 当前MongoDB进程处于活动状态的总秒数,即启动时长。
uptimeMillis: 当前MongoDB进程处于活动状态的毫秒数。
uptimeEstimate: MongoDB内部粗粒度时间保持系统以秒为单位的启动时长
localTime: ISODate表示服务器当前时间,以UTC表示。
asserts:
"asserts" : {
"regular" : <num>,
"warning" : <num>,
"msg" : <num>,
"user" : <num>,
"rollovers" : <num>
},
asserts: 报告自MongoDB进程启动以来引发的断言数目的文档。虽然断言错误一般不常见,但如果asserts非零,则应检查日志文件以获取更多信息。在许多情况下,这些错误是微不足道的,但值得研究。
asserts.regular: 自MongoDB进程启动以来引发的常规断言数。检查日志文件以获取有关这些消息的更多信息。
asserts.warning: 在4.0版中更改, 从MongoDB 4.0开始,该字段返回零0。在早期版本中,该字段返回自MongoDB进程启动以来引发的警告数。
asserts.msg: 自MongoDB进程启动以来引发的消息断言数。检查日志文件以获取更多信息。
asserts.user: 自上次MongoDB进程启动以来发生的“用户断言”数。这些是用户可能生成的错误,例如磁盘空间不足或重复密钥。您可以通过修复应用程序或部署问题来阻止这些断言。查看MongoDB日志以获取更多信息。
asserts.rollovers:自上次MongoDB进程启动以来翻转计数器已翻转的次数。在2^30个断言之后,计数器将翻转为零。使用此值可为asserts数据结构中的其他值提供上下文 。
backgroundFlushing
"backgroundFlushing" : {
"flushes" : <num>,
"total_ms" : <num>,
"average_ms" : <num>,
"last_ms" : <num>,
"last_finished" : ISODate("...")
},
注意
backgroundFlushing仅对使用MMAPv1存储引擎的实例显示。
backgroundFlushing:报告mongod进程定期写入磁盘的文档。如果关心对写入性能和journaling,请参考这些值。
backgroundFlushing.flushes: 数据库将所有写入刷盘的次数。当数据库运行较长时间时,此值将增加。
backgroundFlushing.total_ms: mongod 进程将数据写入(即刷新)到磁盘所花费的总毫秒数(ms)。因为total_ms是绝对值,需综合考虑flushes和 average_ms值。
backgroundFlushing.average_ms: 以毫秒为单位每次刷盘的平均时间,通过total_ms/flushes计算得出。average_ms更可能代表 flushes增加值。不过,异常数据可能会扭曲此值。使用 backgroundFlushing.last_ms以检查高平均值是否因瞬态历史事件或随机写入分布而发生偏差。
backgroundFlushing.last_ms: 上次刷新操作完成所花费的时间(以毫秒为单位)。使用此值可验证服务器的当前性能是否与backgroundFlushing.average_ms和 backgroundFlushing.total_ms提供的历史数据一致。
backgroundFlushing.last_finished: 上次刷新操作完成的 时间戳,以ISODate格式表示。如果此值超过服务器当前时间几分钟并且考虑到时区差异,则重启数据库可能会导致一些数据丢失。也可以考虑通过常规阻止写入操作来阻止此值的持续操作。
connections
"connections" : {
"current" : <num>,
"available" : <num>,
"totalCreated" : NumberLong(<num>)
},
connections: 报告连接状态的文档。使用这些值来评估服务器的当前负载和容量要求。
connections.current: 从客户端到数据库服务器的连接数。此数值包括当前的shell会话。考虑connections.available为此数据添加更多上下文的值。
该值将包括所有传入连接,包括任何shell连接或来自其他服务器的连接,例如 副本集成员或mongos实例。
connections.available: 可用的未使用连接数。将此值与 connections.current以了解数据库上的连接负载,查阅UNIX ulimit设置文档,获取有关可用连接的系统阈值的更多信息。
connections.totalCreated: 计算创建到服务器的所有连接。此数字包括已关闭的连接。
dur (journaling)
"dur" : {
"commits" : <num>,
"journaledMB" : <num>,
"writeToDataFilesMB" : <num>,
"compression" : <num>,
"commitsInWriteLock" : <num>,
"earlyCommits" : <num>,
"timeMs" : {
"dt" : <num>,
"prepLogBuffer" : <num>,
"writeToJournal" : <num>,
"writeToDataFiles" : <num>,
"remapPrivateView" : <num>,
"commits" : <num>,
"commitsInWriteLock" : <num>
}
},
注意
dur(journaling)信息仅出现在 mongod实例,并且使用MMAPv1存储引擎且启用了journaling。
dur: 报告mongod实例 与日志相关的操作和性能的文档。MongoDB每3秒报告此数据,收集过去3到6秒之间的信息。
dur.commits:在上一个日志组提交间隔期间写入日志的事务数。
dur.journaledMB: 在上一个日志组提交间隔期间写入日志的数据量(单位(MB))。
dur.writeToDataFilesMB: 在上一个日志组提交间隔期间从日志写入数据文件的数据量(MB)。
dur.compression: 写入日志的数据的压缩率:
( journaled_size_of_data uncompressed_size_of_data )
dur.commitsInWriteLock: 持有写锁时发生的提交计数。写锁的提交数表示MongoDB节点处于高写负载下,并要求进一步诊断。
dur.earlyCommits: MongoDB在计划的日志组提交间隔之前请求提交的次数 。使用此值确保日记组提交间隔部署时间不会太长。
dur.timeMS: mongod 实例在上一个日记组提交间隔的journaling的各个阶段中报告实例性能的文档。
dur.timeMS.dt: MongoDB收集dur.timeMS数据(以毫秒为单位)。使用此字段为其他dur.timeMS字段值提供上下文。
dur.timeMS.prepLogBuffer: 准备写入日志所花费的时间(以毫秒为单位)。值越小则日志性能越好。
dur.timeMS.writeToJournal: 实际写入日志所花费的时间(以毫秒为单位)。文件系统速度和设备接口会影响其性能。
dur.timeMS.writeToDataFiles: 在日志之后写入数据文件所花费的时间(以毫秒为单位)。文件系统速度和设备接口会影响其性能。
dur.timeMS.remapPrivateView: 重新映射copy-on-write内存映射视图所花费的时间(以毫秒为单位)。较小的值表明日志性能越好。
dur.timeMS.commits: 提交所花费的时间(以毫秒为单位)。
dur.timeMS.commitsInWriteLock: 持有写锁时,提交所花费的时间(以毫秒为单位)
extra_info
"extra_info" : {
"note" : "fields vary by platform.",
"heap_usage_bytes" : <num>,
"page_faults" : <num>
},
extra_info: 提供有关基础系统的其他信息的文档。
extra_info.note: 字符串文本 "fields vary by platform."
extra_info.heap_usage_bytes: 数据库进程使用的堆空间的总大小(以字节为单位)。仅适用于Unix Linux系统。
extra_info.page_faults: 缺页中断总数。当性能瓶颈或者内存不足或者数据集增大, extra_info.page_faults计数器动态的增加。有限和零星的缺页中断不一定表示问题。
Windows区分“硬”缺页中断包括硬盘I/O,“软”缺页中断仅需要内存页面移动。MongoDB在此统计信息中计算硬缺页中断和软缺页中断。
freeMonitoring
"freeMonitoring" : {
"state" : <string>,
"retryIntervalSecs" : <NumberLong>,
"lastRunTime" : <string>,
"registerErrors" : <NumberLong>,
"metricsErrors" : <NumberLong>
},
freeMonitoring:报告免费云监控的文档。
freeMonitoring.state:免费监控的启用状态。值可以是:“enabled”,“disabled”,”pending”如果启用免费监控, 遇到注册错误。
freeMonitoring.retryIntervalSecs: 上传数据的频率(以秒为单位)。
freeMonitoring.lastRunTime: 上次运行指标的日期和时间。
freeMonitoring.registerErrors: 注册错误的数量,遇到非期望的HTTP状态或网络错误时会增加。
freeMonitoring.metricsErrors: 上传指标时遇到的错误数。
globalLock
"globalLock" : {
"totalTime" : <num>,
"currentQueue" : {
"total" : <num>,
"readers" : <num>,
"writers" : <num>
},
"activeClients" : {
"total" : <num>,
"readers" : <num>,
"writers" : <num>
}
},
globalLock: 报告数据库锁状态的文档。通常,锁文档提供有关锁使用的更详细数据。
globalLock.totalTime: 自数据库上次启动和创建全局锁以来的时间(以微秒为单位)。这大致与总服务器启动时间相同。
globalLock.currentQueue: 锁引起的排队操作数目的文档
globalLock.currentQueue.total: 等锁的操作的总数(即,总和globalLock.currentQueue.readers和 globalLock.currentQueue.writers)。
持续很小的队列,特别是较短的操作,不必关注。综合考虑globalLock.activeClients 读写相关信息。
globalLock.currentQueue.readers: 排队等待读锁的操作数。持续很小的读队列,尤其是较短的操作,不必关注。
globalLock.currentQueue.writers: 排队等待写锁的操作数。持续很小写队列,特别是较短的操作,不必关注。
globalLock.activeClients: 正在执行读写操作的已连接客户端数目文档,综合考虑 globalLock.currentQueue。
globalLock.activeClients.total: 内部客户端连接db总数,包括系统线程以及读写队列。由于包括系统线程,此值将高于activeClients.readers 和activeClients.writers之和。
globalLock.activeClients.readers: 执行读操作的活跃客户端连接数。
globalLock.activeClients.writers: 执行写操作的活跃客户端连接数。
logicalSessionRecordCache
3.6 版本的新功能。
"logicalSessionRecordCache" : {
"activeSessionsCount" : <num>,
"sessionsCollectionJobCount" : <num>,
"lastSessionsCollectionJobDurationMillis" : <num>,
"lastSessionsCollectionJobTimestamp" : <Date>,
"lastSessionsCollectionJobEntriesRefreshed" : <num>,
"lastSessionsCollectionJobEntriesEnded" : <num>,
"lastSessionsCollectionJobCursorsClosed" : <num>,
"transactionReaperJobCount" : <num>,
"lastTransactionReaperJobDurationMillis" : <num>,
"lastTransactionReaperJobTimestamp" : <Date>,
"lastTransactionReaperJobEntriesCleanedUp" : <num>
},
logicalSessionRecordCache.activeSessionsCount: 自上次刷新周期以来mongod或mongos实例在内存中缓存的所有活跃本地会话的数目 。
参阅:
$listLocalSessions
logicalSessionRefreshMillis
logicalSessionRefreshMinutes
logicalSessionRecordCache.sessionsCollectionJobCount: 跟踪刷新进程在config.system.sessions集合上运行的次数的数目。
参阅:logicalSessionRefreshMinutes
logicalSessionRecordCache.lastSessionsCollectionJobDurationMillis: 上次刷新的长度(以毫秒为单位)。
logicalSessionRecordCache.lastSessionsCollectionJobTimestamp: 上次刷新的时间。
logicalSessionRecordCache.lastSessionsCollectionJobEntriesRefreshed: 上次刷新期间刷新的会话数。
logicalSessionRecordCache.lastSessionsCollectionJobEntriesEnded:上次刷新期间结束的会话数。
logicalSessionRecordCache.lastSessionsCollectionJobCursorsClosed:上次config.system.sessions集合刷新期间关闭的游标数 。
logicalSessionRecordCache.transactionReaperJobCount
跟踪事务记录清理进程在config.transactions 集合上运行的次数的数目。
logicalSessionRecordCache.lastTransactionReaperJobDurationMillis:上次事务记录清理的长度(以毫秒为单位)。
logicalSessionRecordCache.lastTransactionReaperJobTimestamp:最后一次事务记录清理的时间。
logicalSessionRecordCache.lastTransactionReaperJobEntriesCleanedUp:
在上次事务记录清理期间删除的config.transactions集合中的条目数。
locks
"locks" : {
<type> : {
"acquireCount" : {
<mode> : NumberLong(<num>),
...
},
"acquireWaitCount" : {
<mode> : NumberLong(<num>),
...
},
"timeAcquiringMicros" : {
<mode> : NumberLong(<num>),
...
},
"deadlockCount" : {
<mode> : NumberLong(<num>),
...
}
},
…
locks
在3.0版中更改。
报告每个锁<type>和锁<modes>数据的文档。
锁<types>如下:
锁类型 | 描述 |
Global | 表示全局锁。 |
MMAPV1Journal | 表示MMAPv1存储引擎专用锁,用于同步日志写; 对于非MMAPv1存储引擎, MMAPV1Journal的mode空。 |
Database | 表示数据库锁。 |
Collection | 表示集合锁。 |
Metadata | 表示元数据锁。 |
oplog | 表示对oplog的锁。 |
<modes>如下:
锁定模式 | 描述 |
R | 表示共享(S)锁。 |
W | 表示独占(X)锁定。 |
r | 表示意向共享(IS)锁。 |
w | 表示意向排他(IX)锁。 |
所有值均为NumberLong()类型。
locks.<type>.acquireCount:在特定模式下获取锁的次数。
locks.<type>.acquireWaitCount: 因锁冲突,引起locks.acquireCount锁等待的次数。
locks.<type>.timeAcquiringMicros: 获取锁的等待时间和(以微秒为单位)。
locks.timeAcquiringMicros除以 locks.acquireWaitCount给出特定锁定模式的近似平均等待时间。
locks.<type>.deadlockCount: 获取锁时遇到死锁的次数。
network
"network" : {
"bytesIn" : <num>,
"bytesOut" : <num>,
"numRequests" : <num>
},
network:报告MongoDB网络使用情况的文档。
network.bytesIn: 数据库接收的网络流量字节数。使用此值可确保发送到mongod进程的网络流量与预期和整个应用程序间流量一致。
network.bytesOut: 数据库发送的网络流量的字节数 。使用此值可确保mongod进程发送的网络流量与预期和整体应用程序间流量一致。
network.numRequests: 服务器已收到的不同请求的总数。使用此值为network.bytesIn和network.bytesOut 值提供上下文, 以确保MongoDB的网络使用率与期望和应用程序使用一致。
opLatencies
仅适用于``mongod``实例
"opLatencies" : {
"reads" : <document>,
"writes" : <document>,
"commands" : <document>
},
opLatencies: 包含整个数据库操作延迟的文档。参阅latencyStats文档查看详细说明。只有mongod实例报告 opLatencies。
opLatencies.reads: 读请求的延迟统计信息。
opLatencies.writes: 写操作的延迟统计信息。
opLatencies.commands: 数据库命令的延迟统计信息。
opReadConcernCounters
4.0.6版中的新功能,仅适用于mongod实例
"opReadConcernCounters" : {
"available" : NumberLong(<num>),
"linearizable" : NumberLong(<num>),
"local" : NumberLong(<num>),
"majority" : NumberLong(<num>),
"snapshot" : NumberLong(<num>),
"none" : NumberLong(<num>)
}
opReadConcernCounters
4.0.6版中的新功能。
报告自上次启动以来对mongod实例查询操作指定 的读取关注级别的文档。
规定 w | 描述 |
"available" | 指定读取关注级别"available"的查询操作数 。 |
"linearizable" | 指定读取关注级别"linearizable"的查询操作数 。 |
"local" | 指定读取关注级别"local"的查询操作数。 |
"majority" | 指定读取关注级别"majority"的查询操作数。 |
"snapshot" | 指定读取关注级别"snapshot"的查询操作数。 |
"none" | 未指定读取关注级别的查询操作数,而是使用默认读取关注级别。 |
opReadConcernCounters之和等于 opcounters.query。
opWriteConcernCounters
4.0.6版中的新功能,仅适用于mongod实例
"opWriteConcernCounters" : {
"insert" : {
"wmajority" : NumberLong(<num>),
"wnum" : {
"<num>" : NumberLong(<num>),
...
},
"wtag" : {
"<tag1>" : NumberLong(<num>),
...
},
"none" : NumberLong(<num>)
},
"update" : {
"wmajority" : NumberLong(<num>),
"wnum" : {
"<num>" : NumberLong(<num>),
},
"wtag" : {
"<tag1>" : NumberLong(<num>),
...
},
"none" : NumberLong(<num>)
},
"delete" : {
"wmajority" : NumberLong(<num>)
"wnum" : {
"<num>" : NumberLong(<num>),
...
},
"wtag" : {
"<tag1>" : NumberLong(<num>),
...
},
"none" : NumberLong(<num>)
}
}
opWriteConcernCounters:报告自上次启动以来特定write concerns 下mongod实例的写入操作的文档。
更具体地说,opWriteConcernCounters 报告指定的w:<value>的写入操作。日志标志选项(j)和write concerns的超时选项(wtimeout)不会影响计数。即使操作超时,计数也会增加。
注意:仅在reportOpWriteConcernCountersInServerStatus参数设置为true(false默认情况下)时可用 。
opWriteConcernCounters.insert
4.0.6版中的新功能。报告在特定的w:<value>下,自上次启动以来对mongod实例执行的插入操作的文档:
注意:仅在reportOpWriteConcernCountersInServerStatus参数设置为true(false默认情况下)时可用 。
“insert” : {
“wmajority” : NumberLong (< num > ),
“wnum” : {
“<num>” : NumberLong (< num > ),
...
},
“wtag” : {
“<tag1>” : NumberLong (< num > ),
...
},
“none” : NumberLong (< num > )
},
描述 | |
"wmajority" | 指定w: "majority"的插入操作数。 |
"wnum" | 指定w: <num>的插入操作数。计数按<num>具体分组 。 |
"wtag" | 指定w: <tag>的插入操作数。计数按<tag>具体分组。 |
"none" | 未指定w值的插入操作数。这些操作使用w默认值1。 |
opWriteConcernCounters.insert总和等于 opcounters.insert。
opWriteConcernCounters.update
4.0.6版中的新功能。报告在指定的w:<value>下,自上次启动以来对实例的更新操作的文档:
注意:仅在reportOpWriteConcernCountersInServerStatus参数设置为true(false默认情况下)时可用 。
“update” : {
“wmajority” : NumberLong (< num > ),
“wnum” : {
“<num>” : NumberLong (< num > ),
},
“wtag” : {
“<tag1>” : NumberLong (< num > ),
...
},
“none” : NumberLong (< num > )
},
描述 | |
"wmajority" | 指定w: "majority"的更新操作数。 |
"wnum" | 指定w: <num>的更新操作数。计数按<num>具体分组。 |
"wtag" | 指定w: <tag>的更新操作数。计数按<tag>具体分组 。 |
"none" | 未指定w值的更新操作数。这些操作使用w默认值1。 |
opWriteConcernCounters.update总和等于opcounters.update。
opWriteConcernCounters.delete
4.0.6版中的新功能。报告指定的w:<value>,自上次启动以来对mongod实例执行的删除操作的文档:
注意:仅在reportOpWriteConcernCountersInServerStatus参数设置为true(false默认情况下)时可用
"delete" : {
"wmajority" : NumberLong(<num>)
"wnum" : {
"<num>" : NumberLong(<num>),
...
},
"wtag" : {
"<tag1>" : NumberLong(<num>),
...
},
"none" : NumberLong(<num>)
}
描述 | |
"wmajority" | 指定w: "majority"的删除操作数。 |
"wnum" | 指定w: <num>的删除操作数。计数按<num>具体分组 。 |
"wtag" | 指定w: <tag>的删除操作数。计数按<tag>具体分组。 |
"none" | 未指定w值的删除操作数。这些操作使用w默认值1。 |
opWriteConcernCounters.delete的总和等于opcounters.delete。
opcounters
“opcounters” : {
“insert” : < num > ,
“query” : < num > ,
“update” : < num > ,
“delete” : < num > ,
“getmore” : < num > ,
“command” : < num >
},
opcounters
自mongod上次启动实例以来, 按数据库操作类型报告的文档 。
这些数字将随着时间的推移而增长,直 到下次重启,随着时间的推移分析这些值以跟踪数据库使用率。
注意:opcounters操作中的数据数据受多文档影响,例如批量插入或多次更新操作,将作为单个操作处理。有关更详细的文档级操作跟踪,请参阅metrics.document 。
此外,这些值反映了接收的操作,即使操作不成功也会增加。
opcounters.insert:自上次启动mongod实例以来收到的插入操作总数 。
opcounters.query:自 上次启动mongod实例以来收到的查询总数。
opcounters.update:自上次启动mongod实例以来收到的更新操作总数 。
opcounters.delete:自上次启动mongod实例以来的删除操作总数。
opcounters.getmore:自上次启动mongod实例以来“getmore”操作的总数。即使查询数目较低,此计数器也可能很高。作为复制进程的一部分,Secondary节点将发送 getMore操作
opcounters.command:自mongod上次启动实例以来向数据库发出的命令总数 。
opcounters.command计数所有的命令 ,除了写命令: insert,update,和delete。
opcountersRepl
“opcountersRepl” : {
“insert” : < num > ,
“query” : < num > ,
“update” : < num > ,
“delete” : < num > ,
“getmore” : < num > ,
“command” : < num >
},
opcountersRepl:自上次启动mongod实例以来按类型报告数据库复制操作的文档。当前主机是副本集的成员时才会显示这些值。
MongoDB在复制期间序列化操作,因此这些值将与opcounters值不同。更多信息请参阅复制。
这些数字将随着时间的推移而增长,以响应数据库使用,直到下次重启。随着时间的推移分析这些值以跟踪数据库利用率。
opcountersRepl.insert:自上次启动mongod实例以来复制插入操作的总数 。
opcountersRepl.query:自 上次启动mongod实例以来复制查询的总数。
opcountersRepl.update:自上次启动mongod实例以来复制更新操作总数 。
opcountersRepl.delete:自上次启动mongod实例以来复制的删除操作总数 。
opcountersRepl.getmore:自上次启动mongod实例以来“getmore”操作的总数。即使查询数目较低,此计数器也可能很高。作为复制进程的一部分,secondary节点发送getMore操作。
opcountersRepl.command:自上次启动mongod实例以来发送到数据库的复制命令总数。
repl
"repl" : {
"hosts" : [
<string>,
<string>,
<string>
],
"setName" : <string>,
"setVersion" : <num>,
"ismaster" : <boolean>,
"secondary" : <boolean>,
"primary" : <hostname>,
"me" : <hostname>,
"electionId" : ObjectId(""),
"rbid" : <num>,
"replicationProgress" : [
{
"rid" : <ObjectId>,
"optime" : { ts: <timestamp>, term: <num> },
"host" : <hostname>,
"memberId" : <num>
},
...
]
}
repl:报告副本集配置的文档。 repl仅在当前主机是副本集时存在。更多信息请参见复制。
repl.hosts:当前副本集成员的主机名和端口信息(”host:port")的数组。
repl.setName:当前副本集名称的字符串。此值反映--replSet命令行参数或配置文件中replSetName的值。
repl.ismaster:一个布尔值,指示当前节点是否是副本集的primary节点 。
repl.secondary:一个布尔值,指示当前节点是否是副本集的 secondary成员。
repl.primary:3.0版中的新功能。
副本集的当前primary成员的主机名和端口信息("host:port") 。
repl.me:3.0版中的新增功能:副本集当前成员的主机名和端口信息("host:port")。
repl.rbid:3.0版中的新功能。回滚标识符。用于确定此mongod实例是否发生了回滚。
repl.replicationProgress:在3.2版中更改:以前名称serverStatus.repl.slaves。
3.0版中的新功能。
一个数组,副本集的每个成员报告复制进程给这个成员的一个数组文档。通常,这个成员是primary或者使用链式复制的secondary。
要输出repl,必须将repl选项传递给 serverStatus,如下所示:
db.serverStatus({ "repl": 1 })
db.runCommand({ "serverStatus": 1, "repl": 1 })
repl.replicationProgress部分的内容取决于每个成员复制的源。支持内部操作,仅供内部和诊断使用。
repl.replicationProgress[n].rid:ObjectId用作副本集成员的ID。仅限内部使用。
repl.replicationProgress[n].optime:从这个成员报告的,成员应用的oplog最后一个操作信息。
repl.replicationProgress[n].host:主机的名称[hostname]:[port]格式为副本集的成员。
repl.replicationProgress[n].memberID:此成员的副本集的整数标识符。
security
"security" : {
"SSLServerSubjectName": <string>,
"SSLServerHasCertificateAuthority": <boolean>,
"SSLServerCertificateExpirationDate": <date>
},
security:3.0版中的新功能。报告安全配置和详细信息的文档。仅在针对TLS SSL编译的mongod实例中出现。
security.SSLServerSubjectName: net.ssl.PEMKeyFile指定的TLS SSL证书关联的主题名称 。
security.SSLServerHasCertificateAuthority:布尔值true表示net.ssl.PEMKeyFile 指定的TLS SSL证书与证书颁发机构关联时。false表示TLS SSL证书是自签名的。
security.SSLServerCertificateExpirationDate:
一个日期对象,表示由net.ssl.PEMKeyFile指定的TLS SSL证书到期的日期 。
sharing
版本3.2中的新功能:运行时mongos,该命令返回分片信息。
在版本3.6中更改:从MongoDB 3.6开始,分片成员返回分片信息。
{
"configsvrConnectionString": "csRS/cfg1.example.net:27019,cfg2.example.net:27019,cfg2.example.net:27019",
"lastSeenConfigServerOpTime" : {
"ts" : Timestamp(1517462189, 1),
"t" : NumberLong(1)
},
"maxChunkSizeInBytes" : NumberLong(67108864)
}
sharding:包含分片集群数据的文档。lastSeenConfigServerOpTime仅存在在mongos或分片成员,而配置节点不存在。
sharding.configsvrConnectionString:配置服务器的连接字符串。
sharding.lastSeenConfigServerOpTime:
mongos或shard成员可见,CSRS primary的最新 optime。optime文档包括:
ts,操作的时间戳。
t,term表示操作在primary上最初生成的时间。
lastSeenConfigServerOpTime仅存在在使用CSRS(副本集)的分片集群中。
sharding.maxChunkSizeInBytes:版本3.6中的新功能。块的最大大小限制。如果最近在配置服务器上更新了块大小,则maxChunkSizeInBytes可能无法反映最新值。
shardingStatistics
4.0版中的新功能。
"shardingStatistics" : {
"countStaleConfigErrors" : NumberLong(<num>),
"countDonorMoveChunkStarted" : NumberLong(<num>),
"totalDonorChunkCloneTimeMillis" : NumberLong(<num>),
"totalCriticalSectionCommitTimeMillis" : NumberLong(<num>),
"totalCriticalSectionTimeMillis" : NumberLong(<num>),
"catalogCache" : {
"numDatabaseEntries" : NumberLong(<num>),
"numCollectionEntries" : NumberLong(<num>),
"countStaleConfigErrors" : NumberLong(<num>),
"totalRefreshWaitTimeMicros" : NumberLong(<num>),
"numActiveIncrementalRefreshes" : NumberLong(<num>),
"countIncrementalRefreshesStarted" : NumberLong(<num>),
"numActiveFullRefreshes" : NumberLong(<num>),
"countFullRefreshesStarted" : NumberLong(<num>),
"countFailedRefreshes" : NumberLong(<num>)
}
},
shardingStatistics:分片集群上元数据刷新的指标的文档。
shardingStatistics.countStaleConfigErrors:线程命中陈旧配置异常的总次数。由于陈旧的配置异常触发元数据的刷新,因此该数字大致与元数据刷新的数量成比例。仅存在在正在运行的分片上。
shardingStatistics.countDonorMoveChunkStarted:作为块迁移过程的一部分, moveChunk 命令在分片上启动的总次数(此节点是其成员)。这个数字都会增加不论迁移是否成功。仅存在在运行分片上。
shardingStatistics.totalDonorChunkCloneTimeMillis:从当前shard块迁移的克隆阶段所占用的累积时间(以毫秒为单位),此节点是该节点的成员。具体而言,对于从此分片的每次迁移,跟踪时间从发起moveChunk命令开始, 结束于目标分片进入追赶阶段之前,应用在块迁移期间发生的更改 。仅存在在运行的分片上。
shardingStatistics.totalCriticalSectionCommitTimeMillis:从此分片块迁移过程中的更新元数据阶段所花费的累积时间(以毫秒为单位)。在更新元数据阶段,将阻止集合上的所有操作。仅存在在运行的分片上。
shardingStatistics.totalCriticalSectionTimeMillis:从此分片块迁移的追赶阶段和更新元数据阶段所占用的累积时间(以毫秒为单位),此节点是该节点的成员。
要计算追赶阶段的持续时间为
totalCriticalSectionTimeMillis - totalCriticalSectionCommitTimeMillis
仅存在于在运行分片上运行时出现。
shardingStatistics.catalogCache:集群路由信息缓存的统计信息的文档。
shardingStatistics.catalogCache.numDatabaseEntries:
当前在编目缓存中的数据库条目总数。
shardingStatistics.catalogCache.numCollectionEntries:当前位于编目缓存中的集合条目总数(跨所有数据库)。
shardingStatistics.catalogCache.countStaleConfigErrors:线程命中过时配置异常的总次数。过时的配置异常会触发元数据的刷新。
shardingStatistics.catalogCache.totalRefreshWaitTimeMicros:线程必须等待刷新元数据的累积时间(以微秒为单位)。
shardingStatistics.catalogCache.numActiveIncrementalRefreshes:当前正在等待的增量编目缓存刷新的数量。
shardingStatistics.countIncrementalRefreshesStarted:已启动的累计增量刷新次数。
shardingStatistics.catalogCache.numActiveFullRefreshes:正在等待的全量编目缓存刷新的数量。
shardingStatistics.catalogCache.countFullRefreshesStarted:已启动的累计全量刷新数。
shardingStatistics.catalogCache.countFailedRefreshes:已失败的全量或增量刷新的累计数量。
storageEngine
3.0版中的新功能。
"storageEngine" : {
"name" : <string>,
"supportsCommittedReads" : <boolean>,
"persistent" : <boolean>
},
storageEngine:包含当前存储引擎数据的文档。
storageEngine.name:当前存储引擎的名称。
storageEngine.supportsCommittedReads:版本3.2中的新功能。
一个布尔值,表示存储引擎是否支持"majority" read concern。
storageEngine.persistent:版本3.2.6中的新功能。一个布尔值,表示存储引擎是否将数据持久化到磁盘。
transactions
版本3.6.3中的新功能。
"transactions" : {
"retriedCommandsCount" : <NumberLong>,
"retriedStatementsCount" : <NumberLong>,
"transactionsCollectionWriteCount" : <NumberLong>,
"currentActive" : <NumberLong>,
"currentInactive" : <NumberLong>,
"currentOpen" : <NumberLong>,
"totalAborted" : <NumberLong>,
"totalCommitted" : <NumberLong>,
"totalStarted" : <NumberLong>
}
transactions:包含有关可重试写入和 多文档事务的数据的文档。
transactions.retriedCommandsCount:相应的可重试写入命令已经提交之后收到的重试总数。也就是说,即使写入已成功并且在config.transactions 集合中存在的事务和会话的关联记录,可重试写入继续尝试,例如客户端的初始写入响应丢失。
注意:MongoDB不会重新执行已提交的写入。
总数包括所有会话。总数不包括在内部块迁移时的发生的可重试写入。
版本3.6.3中的新功能。
transactions.retriedStatementsCount:与重试命令 transactions.retriedCommandsCount关联的写语句总数。
注意:MongoDB不会重新执行已提交的写入。
总数不包括在内部块迁移时的发生的可重试写入。
版本3.6.3中的新功能。
transactions.transactionsCollectionWriteCount:提交新的可重试写入语句时触发的对config.transactions 集合的写入总数。
对于更新和删除命令,由于只有单个文档操作可以重试,因此每个语句都有一个写入。
对于插入操作,插入的每批文档有一次写入,除非失败导致每个文档单独插入。
总数包括迁移发生时部分写入服务器config.transactions 集合的写入。
版本3.6.3中的新功能。
transactions.currentActive:当前正在执行命令的打开事务的总数。版本4.0.2中的新功能。
transactions.currentInactive:当前未执行命令的打开事务的总数。版本4.0.2中的新功能。
transactions.currentOpen:开放事务总数。当第一个命令作为该事务的一部分运行时,将打开一个事务,并在事务提交或中止之前保持打开状态。
版本4.0.2中的新功能。
transactions.totalAborted:自mongod进程上次启动以来在此服务器上中止的事务总数 。版本4.0.2中的新功能。
transactions.totalCommitted:自mongod进程上次启动以来在此服务器上提交的事务总数 。版本4.0.2中的新功能。
transactions.totalStarted:自mongod进程上次启动以来在此服务器上启动的事务总数 。版本4.0.2中的新功能。
transportSecurity ¶
在4.0.2版本新增功能:(3.6.7+和3.4.17+也有)
"transportSecurity" : {
"1.0" : <NumberLong>,
"1.1" : <NumberLong>,
"1.2" : <NumberLong>,
"1.3" : <NumberLong>,
"unknown" :<NumberLong>
},
transportSecurity.<version>在4.0.2版本新增功能:(3.6.7+和3.4.17+也有)
mongod实例或mongos实例的累计TLS <version>连接数。重启后重置该值。