クラス: Mongo::Trationing::OpenTelemetry::Trater Private

継承:
オブジェクト
  • オブジェクト
すべて表示
定義:
lib/mongo/tracing/open_elemetry/traser.rb

Overview

このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。

MongoDB の操作とコマンド用の OpenTelemetry トレーサー

インスタンス属性の概要を折りたたむ

インスタンス メソッドの概要を折りたたむ

コンストラクターの詳細

# 初期化(enabled: nil、query_text_max_Length: nil、otel_tracer: nil) ⇒ 正規表現

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

新しい OpenTelemetry トレースを初期化します。

パラメーター:

  • enabled (Boolean | nil) (デフォルトはnil

    OpenTelemetry が有効になっているかどうか。デフォルトは nil です。これは、環境変数 OEL_Ruby_INStruTION_MONGODB_enabled (値は true/1/yes)をチェックすることを意味します。環境変数が設定されていない場合、OpenRealmetry はデフォルトで 無効になります。

  • query_text_max_Length (Integer | nil) (デフォルトはnil

    キャプチャされたクエリ テキストの最大長。デフォルトは nil です。これは、環境変数 OEL_Ruby_INSSTRITION_MONGODB_QUERY_EXT_MAX_LENGTH という環境変数をチェックすることを意味します。環境変数が設定されていない場合、クエリテキストはキャプチャされません。

  • Ol_tracer OpenTelemetry::Trace::Tracer | nil (デフォルトはnil

    使用する OpenTelemetry トレース実装。デフォルトは nil です。つまり、OpenTelemetry のトレーサープロバイダーのデフォルトのレーサーが使用されます。



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
ファイル 'lib/mongo/tracing/open_elemetry/tracer.rb' の検索行: 42

デフォルト 初期化(次の場合に有効 nil, query_text_max_Length: nil, Ol_tracer: nil)
  @enabled = 場合 enabled.nil?
               %w[true 1 はい].include?(ENV['OTEL_RUBY_INSTRUMENTATION_MONGODB_ENABLED']&.ダウンケース)
             else
               enabled
             end
  checkpoint_openlemetry_loaded
  @query_text_max_Length = 場合 query_text_max_Length.nil?
                             ENV['OTEL_RUBY_INSTRUMENTATION_MONGODB_QUERY_TEXT_MAX_LENGTH'].to_i
                           else
                             query_text_max_Length
                           end
  @otal_tracer = Ol_tracer || initialize_tracer
  @operation_tracer = OperationTlaser.新着情報(@otal_tracer, 自己)
  @command_tracer = コマンドトレース者.新着情報(@otal_tracer, 自己, query_text_max_Length: @query_text_max_Length)
end

インスタンス属性の詳細

#ol_tracer == OpenTelemetry::Trate::Trater (読み取り専用)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

MongoDB操作とコマンドの範囲を作成するために使用される OpenTelemetry トラーの実装を返します。

次の値を返します。

  • OpenTelemetry::Tlas::Trater

    MongoDB操作とコマンドの範囲を作成するために使用される OpenTelemetry トレース実装。



27
28
29
ファイル 'lib/mongo/tracing/open_elemetry/tracer.rb' の検索行: 27

デフォルト Ol_tracer
  @otal_tracer
end

インスタンス メソッドの詳細

#cursor_context_mapHash

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

カーソル関連の OpenTelemetry コンテキストを追跡するためのカーソル コンテキスト マップを返します。

次の値を返します。

  • ハッシュ

    カーソル ID を OpenTelemetry コンテキストにマッピングします。



145
146
147
ファイル 'lib/mongo/tracing/open_elemetry/tracer.rb' の検索行: 145

デフォルト cursor_context_map
  @cursor_context_map ||= {}
end

# cursor_map_key(セッション、カーソル_id)⇒ String | nil

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

コンテキスト マップでカーソルを追跡するための一意のキーを生成します。

パラメーター:

  • セッション Mongo::Session

    カーソルに関連付けられたセッション。

  • cursor_id (整数)

    カーソル ID。

次の値を返します。

  • ( string | nil )

    セッションIDと カーソルIDを組み合わせた一意のキー、またはいずれかが nil の場合は nil です。



155
156
157
158
159
ファイル 'lib/mongo/tracing/open_elemetry/tracer.rb' の検索行: 155

デフォルト cursor_map_key(セッション, cursor_id)
  return 場合 cursor_id.nil? || セッション.nil?

  "#{session.session_id['id'].to_uuid}-#{cursor_id}"
end

#有効ブール値

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

OpenTelemetry が有効かどうか。

次の値を返します。

  • ブール値

    OpenTelemetry が有効になっている場合は true、そうでない場合は false です。



62
63
64
ファイル 'lib/mongo/tracing/open_elemetry/tracer.rb' の検索行: 62

デフォルト 有効か
  @enabled
end

#finish_transaction_span(セッション)⇒ オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

トランザクション範囲を完了し、そのコンテキストを非アクティブ化します。

パラメーター:

  • セッション Mongo::Session

    トランザクションを実行中のセッション。



123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
ファイル 'lib/mongo/tracing/open_elemetry/tracer.rb' の検索行: 123

デフォルト final_transaction_span(セッション)
  return ただし、 有効か

  キー = transaction_map_key(セッション)
  return ただし、 キー

  span = transaction_span_map.削除(キー)
  token = transaction_token_map.削除(キー)
  transaction_context_map.削除(キー)

  return ただし、 span & & token

  begin
    span.final
  保証する
    ::OpenTelemetry::Context.detach(token)
  end
end

#親_context_for(operation_context、 cursor_id)= OpenTelemetry::Context | nil

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

操作の親 OpenTelemetry コンテキストを決定します。

操作がトランザクションの一部である場合はトランザクションコンテキストを返し、それ以外の場合は nil を返します。カーソルベースのコンテキストのネストは現在実装されていません。

パラメーター:

  • operation_context Mongo::Operation::Context

    操作コンテキスト。

  • cursor_id (整数)

    カーソルID(該当する場合)。

次の値を返します。

  • OpenTelemetry::Context | nil

    親コンテキストまたは nil 。



170
171
172
173
174
175
176
177
ファイル 'lib/mongo/tracing/open_elemetry/tracer.rb' の検索行: 170

デフォルト parent_context_for(operation_context, cursor_id)
  場合 (キー = transaction_map_key(operation_context.セッション))
    transaction_context_map[キー]
  elsif (_key = cursor_map_key(operation_context.セッション, cursor_id))
    # カーソル操作のネスト方法が決定されない限り、ここでは nil が返されます。
    nil
  end
end

# start_transaction_span(セッション) = オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

トランザクション範囲を開始し、そのコンテキストをアクティブ化します。

パラメーター:

  • セッション Mongo::Session

    トランザクションを開始したセッション。



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_elemetry/tracer.rb' の検索行: 95

デフォルト start_transaction_span(セッション)
  return ただし、 有効か

  キー = transaction_map_key(セッション)
  return ただし、 キー

  最小限の属性でトランザクション範囲を作成する
  span = @otal_tracer.start_span(
    'transaction',
    属性: { 'db.system.name' => 'mongodb' },
    kind: :client
  )

  # この範囲を含むコンテキストを作成
  context = ::OpenTelemetry::TRACE.context_with_span(span)

  # コンテキストをアクティブ化し、後でデタッチするためにトークンを保存する
  token = ::OpenTelemetry::Context.添付する(context)

  後で取得するためにスパン、トークン、コンテキストを保存
  transaction_span_map[キー] = span
  transaction_token_map[キー] = token
  transaction_context_map[キー] = context
end

#トレース_コマンド(メッセージ、操作_コンテキスト、接続){... } ⇒ オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

MongoDBコマンドをトレースします。

パラメーター:

結果:

  • トレースするコマンドを表すブロック。

次の値を返します。

  • オブジェクト

    コマンドの結果です。



86
87
88
89
90
ファイル 'lib/mongo/tracing/open_elemetry/tracer.rb' の検索行: 86

デフォルト track_command(メッセージ, operation_context, 接続, &ブロック)
  return ノードの数 ただし、 有効か

  @command_tracer.track_command(メッセージ, operation_context, 接続, &ブロック)
end

# track_operation(操作、操作_context、op_name: nil){{... } ⇒ オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

MongoDB操作のトレース 。

パラメーター:

  • 操作 Mongo::Operation

    トレースするMongoDB操作。

  • operation_context Mongo::Operation::Context

    操作のコンテキスト。

  • op_name String, nil (デフォルトはnil

    操作の任意の名前。

結果:

  • トレースする操作を表すブロック。

次の値を返します。

  • オブジェクト

    操作の結果。



73
74
75
76
77
ファイル 'lib/mongo/tracing/open_elemetry/tracer.rb' の検索行: 73

デフォルト track_operation(操作, operation_context, op_name: nil, &ブロック)
  return ノードの数 ただし、 有効か

  @operation_tracer.track_operation(操作, operation_context, op_name: op_name, &ブロック)
end

#transaction_context_mapHash

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

アクティブなトランザクション コンテキストを追跡するためのトランザクション コンテキスト マップを返します。

次の値を返します。

  • ハッシュ

    トランザクション キーを OpenTelemetry コンテキストにマッピングします。



182
183
184
ファイル 'lib/mongo/tracing/open_elemetry/tracer.rb' の検索行: 182

デフォルト transaction_context_map
  @transaction_context_map ||= {}
end

#トランザクション_map_key(セッション)⇒string | nil

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

トランザクション追跡用に一意のキーを生成します。

暗黙的なセッションまたはトランザクションにないセッションの場合 nil を返します。

パラメーター:

次の値を返します。

  • ( string | nil )

    セッションIDとトランザクション番号を組み合わせた一意のキー、または nil です。



207
208
209
210
211
ファイル 'lib/mongo/tracing/open_elemetry/tracer.rb' の検索行: 207

デフォルト transaction_map_key(セッション)
  return 場合 セッション.nil? || セッション.implicit? || !セッション.in_transaction?

  " #{ session. session_id[' id']. to_uuid} - #{ session. txn_num} "
end

#transaction_span_mapHash

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

アクティブなトランザクションの範囲を追跡するためのトランザクション範囲マップを返します。

次の値を返します。

  • ハッシュ

    トランザクション キーのマッピング。



189
190
191
ファイル 'lib/mongo/tracing/open_elemetry/tracer.rb' の検索行: 189

デフォルト transaction_span_map
  @transaction_span_map ||= {}
end

#transaction_token_mapHash

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

コンテキスト アタッチメント トークンを追跡するためのトランザクション トークン マップを返します。

次の値を返します。

  • ハッシュ

    OpenTelemetry コンテキスト トークンへのトランザクション キーのマップ。



196
197
198
ファイル 'lib/mongo/tracing/open_elemetry/tracer.rb' の検索行: 196

デフォルト transaction_token_map
  @transaction_token_map ||= {}
end