mongostat 示例
在本页中
本页面展示了 mongostat
的示例。
从系统命令行运行 mongostat
,而不是从 mongo
脚本。
指定 mongostat
收集周期和频率
在第一个示例中,mongostat
将每秒返回一次数据,持续20秒。 mongostat
从运行在本机接口端口27017上的 mongod
实例收集数据。以下所有调用都产生相同的行为
mongostat --rowcount=20 1 mongostat --rowcount=20 mongostat -n=20 1 mongostat -n=20
在下一个示例中,mongostat
每5分钟(或300秒)返回一次数据,只要程序运行。 mongostat
从运行在本机接口端口 27017
上的 mongod
实例收集数据。以下调用产生相同的行为
mongostat --rowcount=0 300 mongostat -n=0 300 mongostat 300
在以下示例中,mongostat
每5分钟返回一次数据,持续一小时(共12次)。mongostat
从运行在本机接口上端口27017的mongod
实例收集数据。以下调用产生相同的行为
mongostat --rowcount=12 300 mongostat -n=12 300
向mongostat
输出添加字段
-O
允许您指定要添加到默认 mongostat
输出的 serverStatus
输出的字段。如果您在自定义字段名中包含空格,请不要在字段名周围添加额外的引号。
以下示例向默认 mongostat
输出添加字段
mongostat -O='host,version,network.numRequests=network requests'
mongostat
输出如下
insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn time host version network requests *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 2.51G 19.0M 0|0 0|0 158b 39.4k 2 Oct 11 12:14:45.878 localhost:37017 3.3.14 91 *0 *0 *0 *0 0 1|0 0.0% 0.0% 0 2.51G 19.0M 0|0 0|0 157b 39.3k 2 Oct 11 12:14:46.879 localhost:37017 3.3.14 95 *0 *0 *0 *0 0 1|0 0.0% 0.0% 0 2.51G 19.0M 0|0 0|0 157b 39.2k 2 Oct 11 12:14:47.884 localhost:37017 3.3.14 99
以下字段被添加到默认输出中
network.numRequests
字段有一个自定义字段名,"network requests"。
指定mongostat
输出字段
-o
指定mongostat
输出中包含的列。您可以将任何 serverStatus
字段指定为mongostat
输出列。
以下示例使用自定义字段为mongostat
:
mongostat --port 27500 -o='host,opcounters.insert.rate()=Insert Rate,opcounters.query.rate()=Query Rate,opcounters.command.rate()=Command Rate,wiredTiger.cache.pages requested from the cache=Pages Req,metrics.document.inserted=inserted rate'
mongostat
输出如下
host Insert Rate Query Rate Command Rate Pages Req Inserted Rate localhost:27500 180 1 8 2999446 9638 localhost:27500 40 3 12 2999601 9678 localhost:27500 181 2 9 3000207 9859 localhost:27500 39 2 12 3000362 9899 localhost:27500 181 2 11 3000969 10080 localhost:27500 39 2 10 3001124 10120
计数器和相应的自定义字段名如下
计数器 | 自定义字段名 |
---|---|
opcounters.insert.rate | 插入速率 |
opcounters.query.rate | 查询速率 |
opcounters.command.rate | 命令速率 |
从缓存请求的wiredTiger.cache.pages | 页面请求 |
metrics.document.inserted | 插入率 |
具有 .rate()
的字段的变更查看率
.rate()
允许您查看数值字段从一个 mongostat
调用到下一个的变化率(每秒)。例如,您可以在插入操作期间查看文档插入的速率。因此,mongod
实例的性能。
以下示例报告了 metrics.document.inserted
serverStatus
字段的变更率。该调用使用 -o
的能力来指定列名,将 metrics.document.inserted.rate()
标记为 "inserted rate",将 metrics.document.inserted
标记为 "inserted"。
mongostat -o='host,mem,bits,metrics.document.inserted.rate()=inserted rate,metrics.document.inserted=inserted' --rowcount=5
输出将类似于
host mem.bits inserted rate inserted localhost:37017 64 501 3455 localhost:37017 64 967 13128 localhost:37017 64 972 22851 localhost:37017 64 214 25000 localhost:37017 64 0 25000
使用 .diff()
查看字段变化
.diff()
返回当前 serverStatus
字段值与上一次 mongostat
调用值的差异。以下示例返回插入到集合中的文档数量统计:inserted diff
是在后续调用之间 metrics.document.inserted
字段之间的差异,而 inserted
是 metrics.document.inserted
: 的值。
mongostat -o='host,mem.bits,metrics.document.inserted.diff()=inserted diff,metrics.document.inserted=inserted' --rowcount=5
输出将类似于
host mem.bits inserted diff inserted localhost:27017 64 0 25359 localhost:27017 64 94 25453 localhost:27017 64 938 26391 localhost:27017 64 964 27355 localhost:27017 64 978 28333
查看副本集或分片集群的统计信息
在许多情况下,使用 --discover
选项可以帮助提供整个机器组的更完整的状态快照。如果连接到本地机器 27017
端口的 mongos
进程正在运行,可以使用以下形式返回集群所有成员的统计信息
mongostat --discover
在交互式界面中查看统计信息
使用--interactive
选项以非滚动方式查看统计信息,具体操作请参考此处。该选项允许您突出显示特定主机、列或字段进行查看。当与--discover
选项结合使用时,--interactive
将显示副本集或分片集群所有成员的统计信息,如下例所示
mongostat --discover --interactive
分片集群的输出将类似于
host insert query update delete getmore command dirty used flushes mapped vsize res faults qrw arw net_in net_out conn set repl time hostname.local:27018 *0 *0 *0 *0 0 1|0 0.0% 0.0% 0 3.25G 25.0M n/a 0|0 1|0 157b 43.9k 19 tic PRI Nov 2 11:44:46.439 hostname.local:27019 *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 3.18G 26.0M n/a 0|0 1|0 322b 44.4k 12 tic SEC Nov 2 11:44:46.439 hostname.local:27020 *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 3.18G 26.0M n/a 0|0 1|0 322b 44.4k 12 tic SEC Nov 2 11:44:46.439 hostname.local:27021 2017 *0 *0 *0 826 1029|0 0.0% 0.0% 0 3.25G 31.0M n/a 0|0 1|0 1.74m 1.60m 20 tac PRI Nov 2 11:44:46.439 hostname.local:27022 *2021 *0 *0 *0 0 2|0 0.0% 0.0% 0 3.19G 32.0M n/a 0|0 1|0 322b 44.6k 12 tac SEC Nov 2 11:44:46.438 hostname.local:27023 *2022 *0 *0 *0 0 3|0 0.0% 0.0% 0 3.19G 33.0M n/a 0|0 1|0 323b 44.7k 12 tac SEC Nov 2 11:44:46.438 localhost:27017 2071 *0 *0 *0 0 2073|0 0 0B 2.43G 9.00M 0 0|0 0|0 249k 130k 4 RTR Nov 2 11:44:47.429 Press '?' to toggle help
使用AWS IAM凭证连接到MongoDB Atlas集群
新功能版本100.1.0.
要连接到已配置为通过 MongoDB Atlas 集群,该集群支持通过 AWS IAM 凭证 进行认证,请为 mongostat
提供一个类似以下的 连接字符串
mongostat 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>
使用 AWS IAM 凭证以这种方式连接到 Atlas 使用的是 MONGODB-AWS
认证机制
和 $external
认证源
,如下例所示。
如果使用 AWS 会话令牌,也提供它相应的 AWS_SESSION_TOKEN
认证机制属性
值,如下所示
mongostat 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>' <other options>
注意
或者,可以使用--username
、--password
和--awsSessionToken
选项在连接字符串外部提供AWS访问密钥ID、秘密访问密钥和可选的会话令牌,如下所示
mongostat 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsSessionToken <aws session token> <other options>
当作为命令行参数提供时,这三个选项不需要百分编码。
您还可以使用标准AWS IAM环境变量将这些凭据设置到您的平台中。mongostat
在您使用MONGODB-AWS
认证机制
:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
如果设置了这些凭据,则无需在连接字符串或通过其显式选项中指定。
注意
如果您选择使用AWS环境变量来指定这些值,则不能混合使用这些凭据的相应显式或连接字符串选项。要么使用访问密钥ID、秘密访问密钥(如果使用,会话令牌)的环境变量,要么使用显式或连接字符串选项分别指定这些凭据。
以下示例在bash
shell中设置这些环境变量
export AWS_ACCESS_KEY_ID='<aws access key id>' export AWS_SECRET_ACCESS_KEY='<aws secret access key>' export AWS_SESSION_TOKEN='<aws session token>'
在其他shell中设置环境变量的语法将不同。请参考您平台的相关文档以获取更多信息。
您可以使用以下命令验证这些环境变量是否已设置
env | grep AWS
设置后,以下示例将使用这些环境变量连接到MongoDB Atlas集群
mongostat 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>