Amazon OpenSearch 服務的跟踪分析 - Amazon OpenSearch 服務

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon OpenSearch 服務的跟踪分析

您可以使用追蹤分析 (屬於可 OpenSearch 觀測性外掛程式的一部分) 來分析來自分散式應用程式的追蹤資料。追蹤分析需要 OpenSearch 或彈性搜尋 7.9 或更新版本。

在分散式應用程式中,單一操作 (例如使用者按一下按鈕) 可觸發一系列延伸事件。例如,應用程式前端可能會呼叫後端服務,這會呼叫另一個服務,查詢資料庫,處理查詢並傳回結果。然後,第一個後端服務會將確認傳送到前端,以便更新 UI。

您可以使用 Trace Analytics 來協助您將此事件流程視覺化並發現效能問題。

注意

本文件提供追蹤分析的簡短概觀。如需完整文件,請參閱開放原始碼 OpenSearch 文件中的追蹤分析

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

必要條件

追蹤分析會要求您將儀器新增至應用程式,並使用 OpenTelemetry支援的程式庫 (例如 Jaeger 或 Zipkin) 產生追蹤資料。此步驟完全發生在 OpenSearch 服務之外。用於 OpenTelemetry 文檔的發行AWS 版包含許多編程語言的示例應用程序,可以幫助您開始使用,包括 Java,Python,Go 和 JavaScript.

將檢測新增至應用程式之後,收OpenTelemetry集器會從應用程式接收資料,並將其格式化為 OpenTelemetry 資料。請參閱上的接收機清單GitHub。 AWS 發行版 OpenTelemetry 包括一個接收器 AWS X-Ray.

最後,您可以使用格Amazon OpenSearch 攝入式化該 OpenTelemetry 資料以便搭配使用 OpenSearch。

OpenTelemetry 收集器範例組態

若要搭配使用 OpenTelemetry 收集器Amazon OpenSearch 攝入,請嘗試下列範例組態:

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 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 OpenSearch 擷取中設定角色和使用者

瀏覽追蹤資料

Dashboard (儀表板) 檢視會依 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.