ネットワークフレームワーク¶
以下は、Webアプリケーションに検出ツールを装備するためのヒントです。
統合¶
次のいずれかのライブラリを使用している場合は、統合ドキュメントを参照してください。
それ以外の場合は、サーバーがWS GIまたはAS GIを使用しているかどうかを確認し、適切な統合を確認してください。
HTTPサーバーの要求と応答ヘッダーをキャプチャします¶
logfire.instrument_fastapi() などの一部のメソッドでは、capture_headers=True を渡して、スパン内のすべてのリクエストヘッダーとレスポンスヘッダーを記録できます。通常、必要なのはそれだけです。
より多くの制御が必要な場合は、OpenTelemometry検出ライブラリにリクエストヘッダーとレスポンスヘッダーをキャプチャするように指示する3つの環境変数があります。
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUESTOTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_RESPONSEOTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS
それぞれがカンマで区切られた正規表現リストを受け取り、これらの正規表現は大文字と小文字を区別せずにヘッダー名を調べます。最初の2つは、どのリクエスト/レスポンスヘッダーをキャプチャしてスパンプロパティに追加するかを決定します。3番目は、どのヘッダーの値を編集するかを決定します。
たとえば、すべてのヘッダーをキャプチャするには、次のように設定します。
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST=".*"
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_RESPONSE=".*"
(これが capture_headers=True が行うことです)
content-type のリクエストヘッダーと X- で始まるリクエストヘッダーを特別にキャプチャします。
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST="content-type, X-.*"
Authorization のヘッダー値を [REDACTED] に置き換えて、ユーザーの資格情報が漏洩しないようにします。
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS="権限付与"
(通常はログファイアのクリーンアップ機能に頼った方が良いですが)
パーセンタイルごとのHTTPリクエストの持続時間を調べます¶
一般的に、パーセンタイルごとのHTTPリクエストの期間を視覚化するのは興味深いです。極端な値の影響を受ける可能性のある平均値とは異なり、パーセンタイルによって、50%、90%、95%、または99%のリクエストの最大期間を知ることができます。
以下は、HTTPリクエストの期間を計算するパーセンタイルのクエリの例です。
WITHデータセットAS(
セレクト
time_bucket('%time_bucket_期間%', start_timestamp)AS x,
(end_timestampからエポックを抽出-start_timestamp)*1000)をduration_msとして
レコードから
属性はどこですか?'http. method'
)
セレクト
x、
パーセンタイル_cont(0.99)グループ内(ORDER BY duration_ms)をパーセンタイル_99として、
パーセンタイル_cont(0.95)グループ内(ORDER BY duration_ms)をパーセンタイル_95として、
パーセンタイル_cont(0.90)グループ内(ORDER BY duration_ms)をパーセンタイル_90として、
パーセンタイル_cont(0.50)グループ内(ORDER BY duration_ms)をパーセンタイル_50として
FROMデータセット
xによるグループ
オーダーバイx DESC;
http.method 属性を設定したレコードをフィルタリングする方法に注意してください。これは、HTTPリクエストに関連するトレースを取得するための良い出発点ですが、設定によっては、さらにフィルターを追加する必要がある場合があります。
このクエリは、ダッシュボードの時系列グラフの良い候補です。
本文总阅读量次
