类:Mongo::Monitoring
- 继承:
-
对象
- 对象
- Mongo::Monitoring
- 定义于:
- build/Ruby-driver-v 2.19 /lib/mongo/monitoring.rb ,
build/Ruby-driver-v 2.19 /lib/mongo/monitoring/publishable.rb,
build/Ruby-driver-v 2.19 /lib/mongo/monitoring/event/secure.rb,
build/Ruby-driver-v 2.19 /lib/mongo/monitoring/event/cmap/base.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/cmap_log_subscriber.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/monitoring/event/server_close.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/monitoring/sdam_log_subscriber.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/monitoring/event/command_failed.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/monitoring/event/server_opening.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/monitoring/event/cmap/pool_ready.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/monitoring/event/command_started.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/event/topology_close.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/command_log_subscriber.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/event/cmap/pool_close.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/event/topology_changed.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/monitoring/event/topology_opening.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/event/cmap/pool_cleared.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/event/cmap/pool_created.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/monitoring/event/command_succeeded.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/monitoring/event/cmap/connection_ready.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/monitoring/unified_sdam_log_subscriber.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/event/cmap/connection_close.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/server_close_log_subscriber.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/monitoring/event/cmap/connection_created.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/event/server_heartbeat_failed.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/server_opening_log_subscriber.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/event/server_heartbeat_started.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/topology_close_log_subscriber.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/topology_changed_log_subscriber.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/topology_opening_log_subscriber.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/monitoring/event/cmap/connection_checked_in.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/event/server_description_changed.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/event/server_heartbeat_succeeded.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/event/cmap/connection_checked_out.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/event/cmap/connection_check_out_failed.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/event/cmap/connection_check_out_started.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/monitoring/server_description_changed_log_subscriber.rb
Overview
该类定义性能监控 API 的行为。
在命名空间下定义
模块: 事件、全局、可发布、可订阅类: CmapLogSubscriber 、 CommandLogSubscriber 、 SDAMLogSubscriber 、 ServerClosedLogSubscriber 、 ServerDescriptionChangedLogSubscriber 、 ServerOpeningLogSubscriber 、 TopologyChangedLogSubscriber 、 TopologyClosedLogSubscriber 、 TopologyOpeningLogSubscriber 、 UnifiedSdamLogSubscriber
常量摘要折叠
- 命令 =
命令主题。
' Command '.冻结
- CONNECTION_POOL =
连接池主题。
' ConnectionPool '.冻结
- SERVER_CLOSED =
服务器已关闭主题。
' ServerClosed '.冻结
- SERVER_DESCRIPTION_CHANGED =
MongoDB Server描述已更改主题。
' ServerDescriptionChanged '.冻结
- SERVER_OPENING =
MongoDB Server开头主题。
' ServerOpening '.冻结
- TOPOLOGY_CHANGED =
拓扑结构发生了主题。
' TopologyChanged '.冻结
- TOPOLOGY_CLOSED =
拓扑结构已关闭的主题。
' TopologyClosed '.冻结
- TOPOLOGY_OPENING =
拓扑结构开头主题。
' TopologyOpening '.冻结
- SERVER_HEARTBEAT =
服务器心跳启动了主题。
' ServerHeartbeat '.冻结
实例属性摘要折叠
- # options ⇒ 对象 只读 private
类方法摘要折叠
-
。 next_operation_id ⇒ 整数
用于生成唯一的操作 ID,将事件链接在一起。
实例方法摘要折叠
-
# failed (topic, event) ⇒ Object
发布失败的事件。
-
#initialize (options = {}) ⇒ 监控
构造函数
private
初始化监控。
- #监控? ⇒ 布尔 private
- # publish_heartbeat (server, awaited: false) ⇒ 对象 private
-
#已发布(主题, 事件) ⇒ 对象
发布事件。
-
#已启动(主题, 事件) ⇒ 对象
发布已启动事件。
-
# success (主题, 事件) ⇒ Object
发布成功事件。
从可订阅中包含的方法
#subscribe 、 #subscribers 、 #subscribers? , #unsubscribe
ID中包含的方法
构造函数详情
#initialize (options = {}) ⇒监控
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
初始化监控。
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/monitoring.rb', line 220 def 初始化( = {}) @options = if [:monitoring] != false 全局.订阅者.每 do |topic, 订阅者| 订阅者.每 do |订阅者| 订阅(topic, 订阅者) end end 订阅(命令, CommandLogSubscriber.new()) #默认不记录 CMAP 事件,因为这会创建 #驾驶员执行的每个操作的日志条目。 # 订阅(CONNECTION_POOL, CmapLogSubscriber.new(options)) 订阅(SERVER_OPENING, ServerOpeningLogSubscriber.new()) 订阅(SERVER_CLOSED, ServerClosedLogSubscriber.new()) 订阅(SERVER_DESCRIPTION_CHANGED, ServerDescriptionChangedLogSubscriber.new()) 订阅(TOPOLOGY_OPENING, TopologyOpeningLogSubscriber.new()) 订阅(TOPOLOGY_CHANGED, TopologyChangedLogSubscriber.new()) 订阅(TOPOLOGY_CLOSED, TopologyClosedLogSubscriber.new()) end end |
实例属性详细信息
# options ⇒对象(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
242 243 244 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/monitoring.rb', line 242 def @options end |
类方法详细信息
。 next_operation_id ⇒整数
用于生成唯一的操作 ID,将事件链接在一起。
79 80 81 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/monitoring.rb', line 79 def self.next_operation_id self.next_id end |
实例方法详细信息
# failed (topic, event) ⇒ Object
发布失败的事件。
此方法用于包含已启动/成功/失败事件的事件类型,例如命令和心跳事件。
306 307 308 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/monitoring.rb', line 306 def 已失败(topic, 事件) subscribers_for(topic).每{ |订阅者| 订阅者.已失败(事件) } end |
#监控? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
245 246 247 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/monitoring.rb', line 245 def 监控? [:monitoring] != false end |
# publish_heartbeat (服务器, awaited: false) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/monitoring.rb', line 311 def publish_heartbeat(server, 等待: false) if 监控? started_event = 事件::ServerHeartbeatStarted.new( server.地址, 等待: 等待) 已启动(SERVER_HEARTBEAT, started_event) end # 我们在心跳成功/失败事件中发布的持续时间为 # 整个心跳花费的时间。 这可能包括时间 # 连接套接字(包括 TLS 握手),而不仅仅是时间 # 花费在 hello 调用本身上。 # 位于 https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring-monitoring.rst 的规范 # 要求此处公开的持续时间从“发送 # message" (hello)。 在以下情况下,此要求没有意义: # 例如,我们根本无法连接到服务器 # 因此 hello 从未被发送。 start_time = Utils.monotic_time 开始 结果 = 产量 救援 => 排除 if 监控? 事件 = 事件::ServerHeartbeatFailed.new( server.地址, Utils.monotic_time - start_time, 排除, 等待: 等待, starts_event: started_event, ) 已失败(SERVER_HEARTBEAT, 事件) end 提高 else if 监控? 事件 = 事件::ServerHeartbeatSucceeded.new( server.地址, Utils.monotic_time - start_time, 等待: 等待, starts_event: started_event, ) 成功(SERVER_HEARTBEAT, 事件) end 结果 end end |
#已发布(主题, 事件) ⇒对象
发布事件。
此方法用于仅包含单个事件的事件类型。
258 259 260 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/monitoring.rb', line 258 def 已发布(topic, 事件) subscribers_for(topic).每{ |订阅者| 订阅者.已发布(事件) } end |
#已启动(主题, 事件) ⇒对象
发布已启动事件。
此方法用于包含已启动/成功/失败事件的事件类型,例如命令和心跳事件。
274 275 276 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/monitoring.rb', line 274 def 已启动(topic, 事件) subscribers_for(topic).每{ |订阅者| 订阅者.已启动(事件) } end |
# success (topic, event) ⇒ Object
发布成功事件。
此方法用于包含已启动/成功/失败事件的事件类型,例如命令和心跳事件。
290 291 292 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/monitoring.rb', line 290 def 成功(topic, 事件) subscribers_for(topic).每{ |订阅者| 订阅者.成功(事件) } end |