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

상속:
객체
  • 객체
모두 표시
다음을 포함합니다.
Monitoring::Event::Secure
다음에 정의됨:
lib/ Mongo/tracing/open_telemetry/command_tracer.rb

개요

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

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

상수 요약 접기

HELLO_COMMANDS =

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

스팬을 생성하지 않아야 하는 명령. OpenTelemetry 사양에서는 드라이버가 명령 로그 및 모니터링 사양에 나와 있는 중요 명령에 대한 명령 스팬을 건너뛰도록 하도록 요구합니다. 또한 모든 형태의 hello / 레거시 hello는 건너뛰도록 합니다. 이들은 핸드쉐이크/하트비트 트래픽이며 추적에 노이즈만 추가합니다.

%w[hello isMaster isMaster].동결

Monitoring::Event::Secure에 포함된 상수

Monitoring::Event::Secure::REDACTED_COMMANDS

인스턴스 메서드 요약 접기

Monitoring::Event::Secure에 포함된 메서드

#compression_allowed?, #redacted, #sensitivity?

생성자 세부 정보

#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 ( 쿼리 텍스트 캡처 없음)입니다.



40
41
42
43
44
# 파일 'lib/ Mongo/tracing/open_telemetry/command_tracer.rb', 줄 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', 줄 51

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

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

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

MongoDB 명령을 추적합니다.

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

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

def trace_command(메시지, 작업, 연결)
  반환 yield 만약 skip_tracing?(메시지)

  # 명령은 항상 작업 범위 바로 아래가 아니라 작업 범위 아래에 중첩되어야 합니다.
  # 트랜잭션 스팬. 자동 상위 항목 확인을 사용하기 위해 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