클래스: Mongo::Trace::OpenTelemetry::Tracer Private
- 상속:
-
객체
- 객체
- Mongo::Trace::OpenTelemetry::Tracer
- 다음에 정의됨:
- lib/ Mongo/tracing/open_telemetry/tracer.rb
개요
이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
MongoDB 작업 및 명령을 위한 OpenTelemetry 추적 프로그램입니다.
인스턴스 속성 요약 접기
-
#otel_tracer ⇒ OpenTelemetry::Trace::Tracer
읽기 전용
비공개
MongoDB 작업 및 명령에 대한 스팬을 생성하는 데 사용되는 OpenTelemetry 추적 구현 .
인스턴스 메서드 요약 접기
-
#cursor_context_map ⇒ Hash
비공개
커서 관련 OpenTelemetry 컨텍스트를 추적하기 위한 커서 컨텍스트 맵을 반환합니다.
-
#cursor_map_key(세션, cursor_id) ⇒ string | nil
비공개
컨텍스트 맵에서 커서 추적을 위한 고유 키를 생성합니다.
-
#활성화되었나요? ⇒ 불리언
비공개
OpenTelemetry의 활성화 여부입니다.
-
#finish_transaction_span(세션) ⇒ 객체
비공개
트랜잭션 범위를 완료하고 해당 컨텍스트를 비활성화합니다.
-
#initialize(enabled: nil, query_text_max_Length: nil, otel_tracer: nil) ⇒ Tracer
생성자
비공개
새 OpenTelemetry 추적 프로그램을 초기화합니다.
-
#parent_context_for(operation_context, cursor_id) ⇒ OpenTelemetry::Context | nil
비공개
작업에 대한 상위 OpenTelemetry 컨텍스트를 결정합니다.
-
#start_transaction_span(세션) ⇒ 객체
비공개
트랜잭션 범위를 시작하고 해당 컨텍스트를 활성화합니다.
-
#trace_command(message, operation_context, connection) {... } ⇒ 객체
비공개
MongoDB 명령을 추적합니다.
-
#trace_작업(작업, operation_context, op_name: nil) { ... } ⇒ 객체
비공개
MongoDB 작업을 추적합니다.
-
#transaction_context_map ⇒ Hash
비공개
활성 트랜잭션 컨텍스트를 추적하기 위한 트랜잭션 컨텍스트 맵을 반환합니다.
-
#transaction_map_key(session) ⇒ string | nil
비공개
트랜잭션 추적을 위한 고유 키를 생성합니다.
-
#transaction_span_map ⇒ Hash
비공개
활성 트랜잭션 범위를 추적하기 위한 트랜잭션 범위 맵을 반환합니다.
-
#transaction_token_map ⇒ Hash
비공개
컨텍스트 첨부 파일 토큰을 추적하기 위한 트랜잭션 토큰 맵을 반환합니다.
생성자 세부 정보
#initialize(enabled: nil, query_text_max_Length: nil, otel_tracer: nil) ⇒ Tracer
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
새 OpenTelemetry 추적 프로그램을 초기화합니다.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# 파일 'lib/ Mongo/tracing/open_telemetry/tracer.rb', 줄 42 def 초기화(활성화됨: nil, query_text_max_Length: nil, otel_tracer: nil) @Enabled = 만약 활성화됨.nil? %w[true 1 네].포함?(ENV['OTEL_RUBY_INSTRUMENTATION_MONGODB_ENABLED']&.downcase) other 활성화됨 end check_opentelemetry_loaded @query_text_max_Length = 만약 query_text_max_Length.nil? ENV['OTEL_RUBY_INSTRUMENTATION_MONGODB_QUERY_TEXT_MAX_LENGTH'].to_i other query_text_max_Length end @otel_tracer = otel_tracer || initialize_tracer @operation_tracer = OperationTracer.신규(@otel_tracer, self) @command_tracer = CommandTracer.신규(@otel_tracer, self, query_text_max_Length: @query_text_max_Length) end |
인스턴스 속성 세부 정보
#otel_tracer ⇒ OpenTelemetry::Trace::Tracer (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
MongoDB 작업 및 명령에 대한 스팬을 생성하는 데 사용되는 OpenTelemetry 추적 구현 반환합니다.
27 28 29 |
# 파일 'lib/ Mongo/tracing/open_telemetry/tracer.rb', 줄 27 def otel_tracer @otel_tracer end |
인스턴스 메서드 세부 정보
#cursor_context_map ⇒ Hash
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서 관련 OpenTelemetry 컨텍스트를 추적하기 위한 커서 컨텍스트 맵을 반환합니다.
145 146 147 |
# 파일 'lib/ Mongo/tracing/open_telemetry/tracer.rb', 줄 145 def cursor_context_map @cursor_context_map ||= {} end |
#cursor_map_key(세션, cursor_id) ⇒ String | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
컨텍스트 맵에서 커서 추적을 위한 고유 키를 생성합니다.
155 156 157 158 159 |
# 파일 'lib/ Mongo/tracing/open_telemetry/tracer.rb', 줄 155 def cursor_map_key(Session, cursor_id) 반환 만약 cursor_id.nil? || Session.nil? "#{session.session_id['id'].to_uuid}-#{cursor_id}" end |
#활성화되었나요? ⇒ 불리언
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
OpenTelemetry의 활성화 여부입니다.
62 63 64 |
# 파일 'lib/ Mongo/tracing/open_telemetry/tracer.rb', 줄 62 def 활성화? @Enabled end |
#finish_transaction_span(세션) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
트랜잭션 범위를 완료하고 해당 컨텍스트를 비활성화합니다.
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# 파일 'lib/ Mongo/tracing/open_telemetry/tracer.rb', 줄 123 def finish_transaction_span(Session) 반환 하지 않는 한 활성화? 키 = transaction_map_key(Session) 반환 하지 않는 한 키 span = transaction_span_map.삭제(키) token = transaction_token_map.삭제(키) transaction_context_map.삭제(키) 반환 하지 않는 한 span && token 시작 span.마침 보장 ::OpenTelemetry::Context.detach(token) end end |
#parent_context_for(operation_context, cursor_id) ⇒ OpenTelemetry::Context | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
작업에 대한 상위 OpenTelemetry 컨텍스트를 결정합니다.
작업이 트랜잭션 의 일부인 경우 트랜잭션 컨텍스트를 반환하고, 그렇지 않으면 nil을 반환합니다. 커서 기반 컨텍스트 중첩은 현재 구현되지 않습니다.
170 171 172 173 174 175 176 177 |
# 파일 'lib/ Mongo/tracing/open_telemetry/tracer.rb', 줄 170 def parent_context_for(operation_context, cursor_id) 만약 (키 = transaction_map_key(operation_context.Session)) transaction_context_map[키] elsif (_key = cursor_map_key(operation_context.Session, cursor_id)) # 커서 중첩하는 방법을 결정하지 않는 한 여기서는 nil을 반환합니다. nil end end |
#start_transaction_span(세션) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
트랜잭션 범위를 시작하고 해당 컨텍스트를 활성화합니다.
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# 파일 'lib/ Mongo/tracing/open_telemetry/tracer.rb', 줄 95 def start_transaction_span(Session) 반환 하지 않는 한 활성화? 키 = transaction_map_key(Session) 반환 하지 않는 한 키 # 최소한의 속성으로 트랜잭션 스팬 생성 span = @otel_tracer.start_span( 'transaction', 속성: { 'db.system.name' => 'mongodb' }, kind: :client ) # 이 범위를 포함하는 컨텍스트 생성 컨텍스트 = ::OpenTelemetry::트레이스.context_with_span(span) # 컨텍스트를 활성화하고 나중에 분리할 수 있도록 토큰을 저장 . token = ::OpenTelemetry::Context.첨부(컨텍스트) # 나중에 검색할 수 있도록 범위, 토큰 및 컨텍스트를 저장합니다. transaction_span_map[키] = span transaction_token_map[키] = token transaction_context_map[키] = 컨텍스트 end |
#trace_command(message, operation_context, connection) {... } ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
MongoDB 명령을 추적합니다.
86 87 88 89 90 |
# 파일 'lib/ Mongo/tracing/open_telemetry/tracer.rb', 줄 86 def trace_command(, operation_context, 연결, &차단) 반환 yield 하지 않는 한 활성화? @command_tracer.trace_command(, operation_context, 연결, &차단) end |
#trace_operation(operation, operation_context, op_name: nil) {... } ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
MongoDB 작업을 추적합니다.
73 74 75 76 77 |
# 파일 'lib/ Mongo/tracing/open_telemetry/tracer.rb', 줄 73 def trace_operation(작업, operation_context, op_name: nil, &차단) 반환 yield 하지 않는 한 활성화? @operation_tracer.trace_operation(작업, operation_context, op_name: op_name, &차단) end |
#transaction_context_map ⇒ Hash
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
활성 트랜잭션 컨텍스트를 추적하기 위한 트랜잭션 컨텍스트 맵을 반환합니다.
182 183 184 |
# 파일 'lib/ Mongo/tracing/open_telemetry/tracer.rb', 줄 182 def transaction_context_map @transaction_context_map ||= {} end |
#transaction_map_key(session) ⇒ string | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
트랜잭션 추적을 위한 고유 키를 생성합니다.
암시적 세션 또는 트랜잭션 에 없는 세션에 대해서는 nil을 반환합니다.
207 208 209 210 211 |
# 파일 'lib/ Mongo/tracing/open_telemetry/tracer.rb', 줄 207 def transaction_map_key(Session) 반환 만약 Session.nil? || Session.암시적? || !Session.in_transaction? "#{session.session_id['id'].to_uuid}-#{session.txn_num}" end |
#transaction_span_map ⇒ Hash
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
활성 트랜잭션 범위를 추적하기 위한 트랜잭션 범위 맵을 반환합니다.
189 190 191 |
# 파일 'lib/ Mongo/tracing/open_telemetry/tracer.rb', 줄 189 def transaction_span_map @transaction_span_map ||= {} end |
#transaction_token_map ⇒ Hash
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
컨텍스트 첨부 파일 토큰을 추적하기 위한 트랜잭션 토큰 맵을 반환합니다.
196 197 198 |
# 파일 'lib/ Mongo/tracing/open_telemetry/tracer.rb', 줄 196 def transaction_token_map @transaction_token_map ||= {} end |