类:Mongo::Tracing::OpenTelemetry::OperationTracer Private

继承:
对象
  • 对象
显示全部
扩展方式:
可转发
定义于:
lib/ Mongo/tracing/open_telemetry/operation_tracer.rb

Overview

此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。

OperationTracer 负责使用 OpenTelemetry 跟踪MongoDB驱动程序操作。

实例方法摘要折叠

构造函数详情

#initialize (otel_tracer, parent_tracer) ⇒ OperationTracer

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

初始化新的 OperationTracer。

参数:

  • otel_tracer ( OpenTelemetry::Trace::Tracer )

    OpenTelemetry 跟踪器。

  • parent_tracer (Mongo::Tracing::OpenTelemetry::Tracer)

    用于访问共享上下文映射的父跟踪器。



37
38
39
40
# 文件 'lib/mongo/tracing/open_telemetry/operation_tracer.rb', line 37

def 初始化(otel_tracer, parent_tracer)
  @otel_tracer = otel_tracer
  @parent_tracer = parent_tracer
end

实例方法详细信息

#trace_operation (operation, operation_context, op_name: nil) {... } ⇒ 对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

跟踪MongoDB操作。

为操作创建 OpenTelemetry 范围,捕获数据库名称、集合名称、操作名称和游标ID等属性。当操作完成或失败时,跨度会自动完成。

rubocop:disable Lint/RescueException

参数:

  • 操作 (Mongo::Operation)

    要跟踪的MongoDB操作。

  • operation_context ( Mongo::Operation::Context )

    操作的上下文。

  • op_name ( string | nil ) (默认为: nil

    操作的可选名称。如果为零,则使用操作类名称。

产量:

  • 代表要跟踪的操作的区块。

返回:

  • ( Object )

    操作的结果。



58
59
60
61
62
63
64
65
66
# 文件 'lib/mongo/tracing/open_telemetry/operation_tracer.rb', line 58

def trace_operation(操作, operation_context, op_name: nil, )
  span = create_operation_span(操作, operation_context, op_name)
  execute_with_span(span, 操作, )
救援 例外 => e
  handle_span_Exception(span, e)
  提高 e
确保
  span&。完成
end