类:Mongo::Tracing::OpenTelemetry::CommandTracer Private
- 继承:
-
对象
- 对象
- Mongo::Tracing::OpenTelemetry::CommandTracer
- 定义于:
- lib/ Mongo/tracing/open_telemetry/command_tracer.rb
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
CommandTracer 负责使用 OpenTelemetry 跟踪MongoDB服务器命令。
实例方法摘要折叠
-
#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命令。
构造函数详情
#initialize(otel_tracer, parent_tracer, query_text_max_length: 0) ⇒ CommandTracer
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
初始化新的 CommandTracer。
31 32 33 34 35 |
# 文件 'lib/ Mongo/tracing/open_telemetry/command_tracer.rb', line 31 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命令启动跨度。
42 |
# 文件 'lib/ Mongo/tracing/open_telemetry/command_tracer.rb', line 42 def start_span(, operation_context, 连接); end |
#trace_command (message, _operation_context, connection) {... } ⇒ 对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
跟踪MongoDB命令。
为命令创建 OpenTelemetry 跨度,捕获命令名称、数据库名称、集合名称、服务器解决、连接 ID 和(可选)查询文本等属性。该跨度自动嵌套在当前操作跨度下,并在命令完成或失败时完成。
rubocop:disable Lint/RescueException
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# 文件 'lib/ Mongo/tracing/open_telemetry/command_tracer.rb', line 59 def trace_command(, 操作, 连接) # 命令应始终嵌套在其操作范围下,而不是直接在 #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 |