聚合阶段$collStates
用于返回集合或视图统计信息。
语法
{
$collStats:
{
latencyStats: {
histograms: <boolean> },
storageStats: {
scale: <number> },
count: {
},
queryExecStats: {
}
}
}
参数说明
$collStats
接收一个文档参数,可选的字段如下:
latencyStats 延迟统计信息
向返回结果添加延迟统计信息,包括读、写、命令、事务的时间。
latencyStats.histograms 延迟统计柱状图数据
当值为true
时,向latencyStats
内嵌文档中添加时延柱状图数据序列,根据这个序列可以生成柱状图。
storageStats 存储相关信息
向返回结果文档添加存储相关的统计信息:
- 指定一个空的文档(如:
storageStats: {}
),表示数据大小的缺省比例因子为1,会以字节为单位返回数据大小。 - 指定比例因子(即
storageStats: { scale: <number> }
),对数据使用指定的比例因子。例如,要显示千字节而不是字节,可指定比例因子为 1024。
如果指定的是非整数比例因子,MongoDB 将使用指定因子的整数部分。例如,如果指定比例因子为 1023.999,MongoDB 将使用 1023 作为比例因子。
比例因子不会影响那些在字段名中指定测量单位的大小,例如 “当前缓存中的字节数”。
count 文档计数
将集合文档总数添加到返回结果文档中。计数基于数据集的元数据,可为分片集群提供快速但有时不准确的计数。
queryExecStats 执行统计信息
添加查询执行统计信息到返回文档中。
对于副本集中的集合或集群中的非分片集合,$collStats
会输出一个文档。对于分片集合,$collStats
会为每个分片输出一个文档。输出文档包括以下字段:
字段名 | 含义 |
---|---|
ns |
请求的集合或视图的命名空间。 |
shard |
输出文档对应的分片名称。仅当$collStats 在分片集群上运行时才会出现。分片集群和非分片集群都会产生这个字段。 |
host |
生成输出文档的 mongod 进程的主机名和端口。 |
localTime |
MongoDB 服务器上的当前时间,以 UNIX 纪元后的 UTC 毫秒表示。 |
latencyStats |
与集合或视图的请求延迟有关的统计信息。仅在指定latencyStats:{} 选项时才有。 |
storageStats |
与数据集存储引擎相关的统计信息。各种大小数据按指定系数比例(在字段名中指定测量单位的大小除外)。只有指定 storageStats 选项时才会出现。如果应用于视图,则返回错误信息。 |
count |
集合中的文档总数。存储统计计数(storageStats.count )中也有该数据。仅在指定 count:{} 选项时才会出现。如果应用于视图,则返回错误信息。 |
queryExecStats |
与执行集合查询相关的统计信息。仅在指定queryExecStats:{} 选项时才会出现。如果应用于视图,则返回错误信息。 |
使用
$collStats
必须是聚合管道的第一阶段,否则管道会返回错误。
使用可查询加密时,$collStats
输出会对加密集合的某些信息进行编辑:
- 输出会省略
"queryExecStats"
。 - 输出省略
"latencyStats"
- 输出中删除了
"WiredTiger"
(如果存在),只包含url
字段。
**注意:**事务中不能使用$collStats
。
latencyStats
文档
只有指定了latencyStats
选项,输出中才会嵌入latencyStats
文档。
字段名 | 描述 |
---|---|
reads |
读取请求的延迟统计数据。 |
writes |
写入请求的延迟统计数据。 |
commands |
数据库命令的延迟统计。 |
transactions |
数据库事务的延迟统计。 |
每个字段都包含一个嵌入文档,其中包含以下字段:
-
latency
,一个 64 位整数,表示以微秒为单位的总延迟时间。 -
ops
,一个 64 位整数,表示自启动以来对数据集执行的操作总数。 -
histogram
,嵌入式文档数组,每个文档代表一个延迟范围。每个文档的范围是前一个文档范围的两倍。对于介于 2048 微秒和大约 1 秒之间的上限值,直方图包含半步。只有在使用 latencyStats:{ histograms: true } 选项,输出中将省略计数为零的空范围。每份文档都有以下字段:字段 描述 micros 一个 64 位整数,以微秒为单位表示当前延迟范围的时间上限。文档的范围介于上一个文档的微妙值(不包括)和本文档的微秒值(包括)之间。 count 一个 64 位整数,表示延迟小于或等于微秒的操作次数。 例如,如果 collStats
会返回如下直方图数据:histogram: [ { micros: NumberLong(1), count: NumberLong(10) }, { micros: NumberLong(2), count: NumberLong(1) }, {