Amazon OpenSearch Service のトレース分析 - Amazon OpenSearch サービス

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

Amazon OpenSearch Service のトレース分析

OpenSearch オブザーバビリティプラグインの一部であるトレース分析を使用して、分散アプリケーションからのトレースデータを分析できます。トレース分析には、 OpenSearch または Elasticsearch 7.9 以降が必要です。

分散アプリケーションでは、ユーザーがボタンをクリックするなどの単一のオペレーションで、一連の拡張イベントをトリガーできます。例えば、アプリケーションのフロントエンドがバックエンドサービスを呼び出し、バックエンドサービスはデータベースのクエリを実行し、クエリを処理して結果を返します。次に、最初のバックエンドサービスがフロントエンドに確認を送信し、フロントエンドは UI を更新します。

トレース分析を使用すると、このイベントのフローを可視化し、パフォーマンスの問題を特定できます。

注記

このドキュメントでは、トレース分析の概要を説明します。包括的なドキュメントについては、オープンソース OpenSearch ドキュメントの「トレース分析」を参照してください。

Trace analytics dashboard showing time spent by service and span detail for various operations.

前提条件

トレース分析では、JaegerZipkin OpenTelemetryなどの がサポートするライブラリを使用して、アプリケーションに計測を追加し、トレースデータを生成する必要があります。このステップは、完全に OpenSearch Service の外部で行われます。AWS Distro for OpenTelemetry ドキュメントには、Java、Python、Go、 など、開始に役立つ多くのプログラミング言語のサンプルアプリケーションが含まれています JavaScript。

アプリケーションに計測を追加すると、OpenTelemetryコレクターはアプリケーションからデータを受信し、 OpenTelemetry データにフォーマットします。「」のレシーバーのリストを参照してくださいGitHub。 の AWS ディストリビューションには、 のレシーバー AWS X-Ray OpenTelemetry が含まれています。

最後に、 Amazon OpenSearch Ingestionを使用して、 で使用する OpenTelemetry データをフォーマットできます OpenSearch。

OpenTelemetry コレクターのサンプル設定

で OpenTelemetry コレクターを使用するにはAmazon OpenSearch Ingestion、次のサンプル設定を試してください。

extensions: sigv4auth: region: "us-east-1" service: "osis" receivers: jaeger: protocols: grpc: exporters: otlphttp: traces_endpoint: "https://pipeline-endpoint.us-east-1.osis.amazonaws.com/opentelemetry.proto.collector.trace.v1.TraceService/Export" auth: authenticator: sigv4auth compression: none service: extensions: [sigv4auth] pipelines: traces: receivers: [jaeger] exporters: [otlphttp]

OpenSearch 取り込みサンプル設定

トレースデータを OpenSearch サービスドメインに送信するには、次のサンプル OpenSearch 取り込みパイプライン設定を試してください。パイプラインを作成する手順については、「」を参照してくださいAmazon Ingestion OpenSearch パイプラインの作成

version: "2" otel-trace-pipeline: source: otel_trace_source: "/${pipelineName}/ingest" processor: - trace_peer_forwarder: sink: - pipeline: name: "trace_pipeline" - pipeline: name: "service_map_pipeline" trace-pipeline: source: pipeline: name: "otel-trace-pipeline" processor: - otel_traces: sink: - opensearch: hosts: ["https://domain-endpoint"] index_type: trace-analytics-raw aws: # IAM role that OpenSearch Ingestion assumes to access the domain sink sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" region: "us-east-1" service-map-pipeline: source: pipeline: name: "otel-trace-pipeline" processor: - service_map: sink: - opensearch: hosts: ["https://domain-endpoint"] index_type: trace-analytics-service-map aws: # IAM role that the pipeline assumes to access the domain sink sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" region: "us-east-1"

sts_role_arn オプションで指定するパイプラインロールには、シンクへの書き込みアクセス許可が必要です。パイプラインロールのアクセス許可を設定する手順については、「」を参照してくださいAmazon Ingestion OpenSearch でのロールとユーザーのセットアップ

トレースデータの探索

Dashboards ビューでは、HTTP メソッドとパス別にトレースをグループ化して、特定のオペレーションに関連付けられた平均レイテンシー、エラー率、傾向を確認できるようにします。より焦点を絞ったビューについては、トレースグループ名でフィルタリングを試みてください。

Dashboard showing latency metrics for HTTP GET /dispatch trace group with 717.58 ms average latency.

トレースグループを構成するトレースをドリルダウンするには、右側の列でトレースの数を選択します。次に、詳細な概要については、個々のトレースを選択します。

Services ビューでは、アプリケーション内のすべてのサービスと、さまざまなサービスが相互に接続する方法を示す対話型マップを一覧表示します。ダッシュボード (オペレーションごとに問題を特定するのに役立つ) とは対照的に、サービスマップはサービスごとに問題を特定するのに役立ちます。エラー率またはレイテンシーでソートを試みて、アプリケーションの潜在的な問題領域を把握してください。

Services dashboard showing performance metrics for 6 microservices, including latency and error rates.