클래스: Mongo::Tracing::OpenTelemetry::CommandTracer Private

상속:
객체
  • 객체
모두 표시
다음에 정의됨:
lib/ Mongo/tracing/open_telemetry/command_tracer.rb

개요

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

CommandTracer는 OpenTelemetry를 사용하여 MongoDB 서버 명령을 추적하는 역할을 합니다.

인스턴스 메서드 요약 접기

생성자 세부 정보

#initialize(otel_tracer, parent_tracer, query_text_max_Length: 0) ⇒ CommandTracer

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

새 CommandTracer를 초기화합니다.

매개변수:

  • otel_tracer (OpenTelemetry::Trace::Tracer)

    OpenTelemetry 추적 프로그램.

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

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

  • query_text_max_Length (정수) (기본값: 0)

    캡처된 쿼리 텍스트의 최대 길이입니다. 기본값은 0 ( 쿼리 텍스트 캡처 없음)입니다.



31
32
33
34
35
# 파일 'lib/ Mongo/tracing/open_telemetry/command_tracer.rb', 줄 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', 줄 42

def start_span(메시지, operation_context, 연결); end

#trace_command(message, _operation_context, connection) {... } ⇒ 객체

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

MongoDB 명령을 추적합니다.

명령에 대한 OpenTelemetry 범위를 생성하여 명령 이름, 데이터베이스 이름, 컬렉션 이름, 서버 주소, 연결 ID 및 쿼리 텍스트(선택 사항)와 같은 속성을 캡처합니다. 범위는 현재 작업 범위 아래에 자동으로 중첩되며 명령이 완료되거나 실패하면 완료됩니다.

Rubocop: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', 줄 59

def trace_command(메시지, 작업, 연결)
  # 명령은 항상 작업 범위 바로 아래가 아니라 작업 범위 아래에 중첩되어야 합니다.
  # 트랜잭션 스팬. 자동 상위 항목 확인을 사용하기 위해 with_parent를 전달하지 마세요.
  # 현재 활성 범위(작업 범위)에서 가져옵니다.
  span = create_command_span(메시지, 연결)
  ::OpenTelemetry::트레이스.with_span(span) do |s, C|
    yield. do |결과|
      process_command_result(결과, cursor_id(메시지), C, s)
    end
  end
구출 예외 => e
  handle_command_Exception(span, e)
  올리다 e
보장
  span&.마침
end