X-Ray SDK for .NET を使用してダウンストリーム HTTP ウェブサービスの呼び出しをトレースする - AWS X-Ray

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

X-Ray SDK for .NET を使用してダウンストリーム HTTP ウェブサービスの呼び出しをトレースする

アプリケーションがマイクロサービスまたはパブリック HTTP API に呼び出しを実行する場合に、GetResponseTraced で X-Ray SDK for .NET の System.Net.HttpWebRequest 拡張メソッドを使用してこれらの呼び出しを計測し、API をダウンストリームサービスとしてサービスグラフに追加できます。

例 HttpWebRequest
using System.Net; using Amazon.XRay.Recorder.Core; using Amazon.XRay.Recorder.Handlers.System.Net; private void MakeHttpRequest() { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://names.example.com/api"); request.GetResponseTraced(); }

非同期呼び出しには、GetAsyncResponseTraced を使用します。

request.GetAsyncResponseTraced();

system.net.http.httpclient を使用する場合は、HttpClientXRayTracingHandler 委任ハンドラを使用して呼び出しを記録します。

例 HttpClient
using System.Net.Http; using Amazon.XRay.Recorder.Core; using Amazon.XRay.Recorder.Handlers.System.Net; private void MakeHttpRequest() { var httpClient = new HttpClient(new HttpClientXRayTracingHandler(new HttpClientHandler())); httpClient.GetAsync(URL); }

ダウンストリームウェブ API に対する呼び出しを計測すると、X-Ray SDK for .NET は HTTP リクエストおよびレスポンスに関する情報を含むセグメントを記録します。X-Ray はサブセグメントを使用して API の推測セグメントを生成します。

例 ダウンストリーム HTTP 呼び出しのサブセグメント
{ "id": "004f72be19cddc2a", "start_time": 1484786387.131, "end_time": 1484786387.501, "name": "names.example.com", "namespace": "remote", "http": { "request": { "method": "GET", "url": "https://names.example.com/" }, "response": { "content_length": -1, "status": 200 } } }
例 ダウンストリーム HTTP 呼び出しの推定セグメント
{ "id": "168416dc2ea97781", "name": "names.example.com", "trace_id": "1-62be1272-1b71c4274f39f122afa64eab", "start_time": 1484786387.131, "end_time": 1484786387.501, "parent_id": "004f72be19cddc2a", "http": { "request": { "method": "GET", "url": "https://names.example.com/" }, "response": { "content_length": -1, "status": 200 } }, "inferred": true }