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

継承:
オブジェクト
  • オブジェクト
すべて表示
次のことが含まれます。
Monitoring::Event::Secure
定義:
lib/mongo/tracing/open_elemetry/command_tracer.rb

Overview

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

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

定数の概要の削減

HELLO_COMMANDS =

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

スパンを作成する必要のないコマンド。OpenTelemetry の仕様では、コマンドログとモニタリングの仕様に記載されている機密なコマンドのコマンド スパンをスキップするようにドライバーに要求されています。さらに、すべての形式で hello / レガシー hello をスキップします。これらはハンドシェイク/ハートビート トラフィックであり、トレースにノイズを追加するだけです。

%w[Hello is マスター isマスター].freeze

Monitoring::Event::Secureに含まれる制約

モニタリング::Event::Secure::REDACTED_COMMANDS

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

::Event::Secureに含まれるメソッド

#compression_allowed?# 編集済み# 区別

コンストラクターの詳細

# 初期化(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(クエリ テキスト キャプチャなし)。



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

デフォルト 初期化(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コマンドの範囲を開始します。

パラメーター:



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

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

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

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

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

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

bulk:disable Lint/ResecutionException

パラメーター:

結果:

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

次の値を返します。

  • オブジェクト

    コマンドの結果です。



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
ファイル 'lib/mongo/tracing/open_elemetry/command_tracer.rb' の検索行: 68

デフォルト track_command(メッセージ, 操作, 接続)
  return ノードの数 場合 skip_tracing?(メッセージ)

  コマンドは常に操作範囲の下にネストする必要があります。
  トランザクションの範囲。自動親解決を使用するには 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