类:Mongo::Tracing::OpenTelemetry::CommandTracer Private
- 继承:
-
对象
- 对象
- Mongo::Tracing::OpenTelemetry::CommandTracer
- 定义于:
- lib/ Mongo/tracing/open_telemetry/command_tracer.rb
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
CommandTracer 负责使用 OpenTelemetry 跟踪MongoDB服务器命令。
常量摘要折叠
- HELLO_COMMANDS =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
不得创建跨度的命令。OpenTelemetry 规范要求驱动程序跳过命令记录和监控规范中列出的敏感命令的命令跨度。我们还会跳过所有形式的 hello/旧版 hello —— 这些是握手/心跳流量,只会增加追踪的噪声。
%w[hello isMaster isMaster].冻结
Monitoring::Event::Secure中包含的常量
Monitoring::Event::Secure::REDACTED_COMMANDS
实例方法摘要折叠
-
#initialize (otel_tracer,parent_tracer, query_text_max_length: 0) ⇒ CommandTracer
构造函数
private
初始化新的 CommandTracer。
-
#start_span (message, operation_context, connection) ⇒ 对象
private
为MongoDB命令启动跨度。
-
#trace_command (message, _operation_context, connection) {... } ⇒ 对象
private
跟踪MongoDB命令。
Monitoring::Event::Secure中包含的方法
#compression_allowed? 、 #redacted 、 #sensitive?
构造函数详情
#initialize(otel_tracer, parent_tracer, query_text_max_length: 0) ⇒ CommandTracer
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
初始化新的 CommandTracer。
40 41 42 43 44 |
# 文件 'lib/ Mongo/tracing/open_telemetry/command_tracer.rb', line 40 def 初始化(otel_tracer, parent_tracer, query_text_max_length: 0) @otel_tracer = otel_tracer @parent_tracer = parent_tracer @query_text_max_length = query_text_max_length end |
实例方法详细信息
#start_span (message, operation_context, connection) ⇒ 对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
为MongoDB命令启动跨度。
51 |
# 文件 'lib/ Mongo/tracing/open_telemetry/command_tracer.rb', line 51 def start_span(, operation_context, 连接); end |
#trace_command (message, _operation_context, connection) {... } ⇒ 对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
跟踪MongoDB命令。
为命令创建 OpenTelemetry 跨度,捕获命令名称、数据库名称、集合名称、服务器解决、连接 ID 和(可选)查询文本等属性。该跨度自动嵌套在当前操作跨度下,并在命令完成或失败时完成。
rubocop:disable Lint/RescueException
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# 文件 'lib/ Mongo/tracing/open_telemetry/command_tracer.rb', line 68 def trace_command(, 操作, 连接) return 产量 if skip_tracing?() # 命令应始终嵌套在其操作范围下,而不是直接在 #ACID 事务跨度。不要传递 with_parent 以使用自动父级解析 # 从当前活动范围(操作范围)开始。 span = create_command_span(, 连接) ::OpenTelemetry::TRACE.with_span(span) do |s, C| 产量.点击 do |结果| process_command_result(结果, cursor_id(), C, s) end end 救援 例外 => e handle_command_Exception(span, e) 提高 e 确保 span&。完成 end |