Amazon OpenSearch 서비스를 위한 추적 분석 - 아마존 OpenSearch 서비스

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon OpenSearch 서비스를 위한 추적 분석

OpenSearch Observability 플러그인의 일부인 Trace Analytics를 사용하여 분산 애플리케이션의 추적 데이터를 분석할 수 있습니다. 트레이스 애널리틱스에는 Elasticsearch 7.9 OpenSearch 이상이 필요합니다.

분산 애플리케이션에서 사용자가 버튼을 클릭하는 것과 같은 단일 작업은 일련의 확장된 이벤트를 트리거할 수 있습니다. 예를 들어 애플리케이션 프런트 엔드는 다른 서비스를 호출하고 데이터베이스를 쿼리하며 쿼리를 처리하고 결과를 반환하는 백엔드 서비스를 호출할 수 있습니다. 그런 다음 첫 번째 백엔드 서비스가 UI를 업데이트하는 프런트 엔드에 확인을 보냅니다.

Trace Analytics를 사용하여 이러한 이벤트 흐름을 시각화하고 성능 문제를 식별할 수 있습니다.

참고

이 문서는 추적 분석에 대한 간략한 개요를 제공합니다. 포괄적인 설명서는 오픈 소스 OpenSearch 설명서의 추적 분석을 참조하십시오.

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

사전 조건 

추적 분석을 사용하려면 애플리케이션에 계측을 추가하고 Jaeger 또는 Zipkin과 같은 OpenTelemetry 지원되는 라이브러리를 사용하여 추적 데이터를 생성해야 합니다. 이 단계는 전적으로 서비스 외부에서 수행됩니다. OpenSearch OpenTelemetry 설명서용AWS 배포판에는 Java, Python, Go 등을 비롯하여 시작하는 데 도움이 되는 여러 프로그래밍 언어의 예제 애플리케이션이 포함되어 있습니다. JavaScript

애플리케이션에 계측을 추가하면 OpenTelemetryCollector는 애플리케이션으로부터 데이터를 수신하여 데이터로 OpenTelemetry 포맷합니다. 에서 수신기 목록을 참조하십시오. GitHub AWS 용 배포판에는 수신기가 OpenTelemetry 포함되어 있습니다. AWS X-Ray

마지막으로, 함께 OpenSearch 사용할 OpenTelemetry 데이터를 아마존 OpenSearch 인제션 포맷하는 데 사용할 수 있습니다.

OpenTelemetry 컬렉터 샘플 구성

OpenTelemetry Collector를 함께 아마존 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 Ingestion에서 역할 및 사용자 설정.

데이터 추적 탐색

대시보드 보기는 특정 작업과 관련된 평균 대기 시간, 오류율 및 추세를 볼 수 있도록 HTTP 메서드 및 경로별로 추적을 함께 그룹화합니다. 더욱 집중된 보기를 위해 추적 그룹 이름을 기준으로 필터링합니다.

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

추적 그룹을 구성하는 추적을 드릴다운하려면 오른쪽 열에서 추적 수를 선택합니다. 그런 다음 자세한 요약을 위해 개별 추적을 선택합니다.

서비스 보기는 애플리케이션의 모든 서비스와 다양한 서비스가 서로 연결되는 방법을 보여주는 대화형 맵을 나열합니다. 작업별로 문제를 식별하는 데 도움이 되는 대시보드와는 달리 서비스 맵은 서비스별로 문제를 식별하는 데 도움이 됩니다. 오류율 또는 대기 시간을 기준으로 정렬하여 애플리케이션의 잠재적 문제 영역을 파악합니다.

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