클래스: Mongo::Trace::OpenTelemetry::OperationTracer Private

상속:
객체
  • 객체
모두 표시
확장자:
전달 가능
다음에 정의됨:
lib/ Mongo/tracing/open_telemetry/operation_tracer.rb

개요

이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

OperationTracer는 OpenTelemetry를 사용하여 MongoDB 드라이버 작업을 추적하는 역할을 합니다.

인스턴스 메서드 요약 접기

생성자 세부 정보

#initialize(otel_tracer, parent_tracer) ⇒ OperationTacer

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

새 OperationTracer를 초기화합니다.

매개변수:

  • otel_tracer (OpenTelemetry::Trace::Tracer)

    OpenTelemetry 추적 프로그램.

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

    공유 컨텍스트 맵에 액세스하기 위한 상위 추적 프로그램입니다.



37
38
39
40
# 파일 'lib/ Mongo/tracing/open_telemetry/operation_tracer.rb', 줄 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 작업을 추적합니다.

데이터베이스 이름, 컬렉션 이름, 작업 이름, 커서 ID 등의 속성을 캡처하는 작업에 대한 OpenTelemetry 범위를 만듭니다. 작업이 완료되거나 실패하면 범위가 자동으로 완료됩니다.

Rubocop:Lint/RescueException 비활성화

매개변수:

  • 작업 (Mongo::Operation)

    추적할 MongoDB 작업입니다.

  • operation_context (Mongo::Operation::Context)

    작업의 컨텍스트입니다.

  • op_name (string | nil) (기본값: nil)

    작업의 선택적 이름입니다. nil이면 작업 클래스 이름이 사용됩니다.

수율:

  • 추적할 작업을 나타내는 차단 .

반환합니다:

  • (객체)

    작업 결과입니다.



58
59
60
61
62
63
64
65
66
# 파일 'lib/ Mongo/tracing/open_telemetry/operation_tracer.rb', 줄 58

def trace_operation(작업, operation_context, op_name: nil, &차단)
  span = create_operation_span(작업, operation_context, op_name)
  execution_with_span(span, 작업, &차단)
구출 예외 => e
  handle_span_Exception(span, e)
  올리다 e
보장
  span&.마침
end