클래스: Mongo::Tracing::OpenTelemetry::CommandTracer Private
- 상속:
-
객체
- 객체
- Mongo::Trace::OpenTelemetry::CommandTracer
- 다음을 포함합니다.
- 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
인스턴스 메서드 요약 접기
-
#initialize(otel_tracer, parent_tracer, query_text_max_Length: 0) ⇒ CommandTracer
생성자
비공개
새 CommandTracer를 초기화합니다.
-
#start_span(message, operation_context, connection) ⇒ 객체
비공개
MongoDB 명령의 스팬을 시작합니다.
-
#trace_command(message, _operation_context, connection) {... } ⇒ 객체
비공개
MongoDB 명령을 추적합니다.
Monitoring::Event::Secure에 포함된 메서드
#compression_allowed?, #redacted, #sensitivity?
생성자 세부 정보
#initialize(otel_tracer, parent_tracer, query_text_max_Length: 0) ⇒ CommandTracer
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
새 CommandTracer를 초기화합니다.
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 |