db.setProfilingLevel()---用于采集与分析慢操作的数据库请求

db.setProfilingLevel()
mongodb的profiler设置,默认该设置是关闭的,profiler可用于采集与分析慢操作的数据库请求。

> db.setProfilingLevel(<level>, <options>);

Parameters
参数:level
Type: integer
Description:配置数据库profiler级别

levelDescription
0profiler已关闭,并且不收集任何数据。这是默认的profiler级别。
1profiler收集花费的时间超过slowms值的数据。
2profiler收集所有操作的数据。

参数:options
Type: document or integer
Description:可选的,接受document or integer。如果将整数值作为options参数而不是文档作为参数传递,则该值将分配给slowms。

ParameterTypeDefaultDescription
slowmsinteger100操作时间阈值,单位为毫秒。运行时间超过此阈值的操作被认为是缓慢的,将会被记录。
当logLevel设置为0时,MongoDB将以slowOpSampleRate确定的速率将慢速操作记录到诊断日志中。 从MongoDB 4.2开始,副本集的辅助副本记录所有花费比慢操作阈值更长的时间来应用的oplog条目消息,而不管采样率如何。
在较高的logLevel设置下,所有操作都将显示在诊断日志中,而与它们的延迟无关,但以下情况除外:次要对象记录慢速oplog条目消息。 辅助服务器仅记录慢速操作日志条目; 增加logLevel不会记录所有操作日志条目。
对于mongod实例,该设置会同时影响诊断日志和探查器(如果启用)。
对于mongos实例,该设置仅影响诊断日志,而不影响profiler,因为在mongos上不提供概要分析。
sampleRatedouble1.0表示分析或记录的慢速操作的百分数。 sampleRate接受介于0和1之间(含)的值。
对于mongod实例,该设置会同时影响诊断日志和探查器(如果启用)。
对于mongos实例,该设置仅影响诊断日志,而不影响事件探查器,因为在mongos上不提供概要分析。
filterobject一个过滤器表达式,用于控制分析和记录哪些操作。 过滤器表达式中的字段可以是profiler输出中的任何字段。
对于mongod实例,该设置会同时影响诊断日志和探查器(如果启用)。
对于mongos实例,该设置仅影响诊断日志,而不影响事件探查器,因为在mongos上不提供概要分析。
版本4.4.2中的新功能。

该方法会返回一个包含先前设置值的文档。
单机版Returns

{
   "was" : 2,
   "slowms" : 100,
   "sampleRate" : 1,
   "filter" : {
      "$and" : [
         {
            "op" : {
               "$eq" : "query"
            }
         },
         {
            "millis" : {
               "$gt" : 20000
            }
         }
      ]
   },
   "note" : "When a filter expression is set, slowms and sampleRate are not used for profiling and slow-query log lines.",
   "ok" : 1
}

副本集Returns

{
   "was" : 0,
   "slowms" : 100,
   "sampleRate" : 1,
   "filter" : {
      "$and" : [
         {
            "op" : {
               "$eq" : "query"
            }
         },
         {
            "millis" : {
               "$gte" : 2000
            }
         }
      ]
   },
   "note" : "When a filter expression is set, slowms and sampleRate are not used for profiling and slow-query log lines.",
   "ok" : 1,
   "$clusterTime" : {
      "clusterTime" : Timestamp(1572991238, 1),
      "signature" : {
         "hash" : BinData(0,"hg6GnlrVhV9MAhwWdeHmHQ4T4qU="),
         "keyId" : NumberLong("6755945537557495811")
      }
   },
   "operationTime" : Timestamp(1572991238, 1)
}

mongos实例Returns

{
   "was" : 0,
   "slowms" : 100,
   "sampleRate" : 1,
   "filter" : {
      "$and" : [
         {
            "op" : {
               "$eq" : "query"
            }
         },
         {
            "millis" : {
               "$gte" : 2000
            }
         }
      ]
   },
   "note" : "When a filter expression is set, slowms and sampleRate are not used for profiling and slow-query log lines.",
   "ok" : 1,
   "operationTime" : Timestamp(1572991499, 2),
   "$clusterTime" : {
      "clusterTime" : Timestamp(1572991499, 2),
      "signature" : {
         "hash" : BinData(0,"nhCquIxUw7thlrBudXe3PnsnvP0="),
         "keyId" : NumberLong("6755946491040235540")
      }
   }
}

Parameter:

  • was 返回先前的profiler级别设置
  • slowms 返回先前的slowms阈值设置
  • sampleRate 返回先前的sampleRate设置
  • filter 返回先前的过滤器设置 (New in MongoDB 4.4.2)
  • note 是说明过滤器的字符串。 仅当还存在过滤器时,此字段才会出现在输出中。 (New in MongoDB 4.4.2)

查看当前设置:

> db.getProfilingStatus();

Examples
mongod实例设置:

  • profiler的级别设置为1
  • slowms阈值为20毫秒
  • sampleRate为42%
> db.setProfilingLevel(1, { slowms: 20, sampleRate: 0.42 })
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值