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

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

Overview

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

コマンドトレースは、OpenTelemetry を使用してMongoDBサーバーコマンドをトレースするのを担当します。

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

コンストラクターの詳細

# 初期化(otel_tracer、親_tracer、query_text_max_Length: 0)⇒ コマンドトレース者

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

新しい コマンドトラ上 を初期化します。

パラメーター:

  • Ol_tracer OpenTelemetry::Tlas::Trater

    OpenTelemetry トレースター。

  • parent_tracer Mongo::Trationing::OpenTelemetry::Trater

    共有コンテキスト マップにアクセスするための親トレーサー。

  • query_text_max_Length 整数 (デフォルトは0です)

    キャプチャされたクエリ テキストの最大長。デフォルトは 0(クエリ テキスト キャプチャなし)。



31
32
33
34
35
ファイル 'lib/mongo/tracing/open_elemetry/command_tracer.rb' の検索行: 31

デフォルト 初期化(Ol_tracer, parent_tracer, query_text_max_Length: 0)
  @otal_tracer = Ol_tracer
  @parent_tracer = parent_tracer
  @query_text_max_Length = query_text_max_Length
end

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

# start_span(メッセージ、 operation_context、接続) ⇒ オブジェクト

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

MongoDBコマンドの範囲を開始します。

パラメーター:



42
ファイル 'lib/mongo/tracing/open_elemetry/command_tracer.rb' の検索行: 42

デフォルト start_span(メッセージ, operation_context, 接続); end

# track_command (メッセージ, _operation_context, connection){... } ⇒ オブジェクト

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

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

コマンドの OpenTelemetry の範囲を作成し、コマンド名、データベース名、コレクション名、サーバーアドレス、接続 ID、オプションでクエリテキストなどの属性を取得します。スパンは現在の操作スパンの下に自動的にネストされ、コマンドが完了または失敗すると終了します。

bulk:disable Lint/ResecutionException

パラメーター:

結果:

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

次の値を返します。

  • オブジェクト

    コマンドの結果です。



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
ファイル 'lib/mongo/tracing/open_elemetry/command_tracer.rb' の検索行: 59

デフォルト track_command(メッセージ, 操作, 接続)
  コマンドは常に操作範囲の下にネストする必要があります。
  トランザクションの範囲。自動親解決を使用するには with_parent を渡しません
  現在アクティブな範囲(操作範囲)からの #
  span = create_command_span(メッセージ, 接続)
  ::OpenTelemetry::TRACE.with_span(span) 行う |s, c|
    ノードの数.タップ 行う |結果|
      process_command_result(結果, cursor_id(メッセージ), c, s)
    end
  end
ヘルプ 例外 => e
  hand_command_例外(span, e)
  発生 e
保証する
  span&.final
end