OpenTelemetry를 통한 가시성
AEM as a Cloud Service에서 OpenTelemetry를 사용하여 추적, 지표 및 로그를 선택한 APM(Application Performance Monitoring) 플랫폼으로 전송하는 방법을 알아봅니다.
Adobe이 AEM as a Cloud Service의 기본 제공 APM(Application Performance Monitoring) 통합을 추적, 지표 및 로그를 수집하고 내보내는 개방형 표준인 OpenTelemetry(으)로 바꾸고 있습니다. OpenTelemetry를 사용하면 자체 APM 끝점을 가져오고 팀이 이미 알고 있는 도구를 사용하여 나머지 애플리케이션과 함께 AEM을 모니터링할 수 있습니다. 자세한 내용은 OpenTelemetry 설명서를 참조하세요.
이 문서에서는 통합이 제공하는 기능, 원격 측정이 AEM에서 APM 플랫폼으로 흐르는 방식, 제어하는 사항 및 활성화하기 전에 고려해야 할 사항에 대해 설명합니다. 구성 자습서에서는 AEM 환경에 대한 OpenTelemetry를 설정하는 방법을 설명합니다.
OpenTelemetry를 사용해야 하는 이유
OpenTelemetry를 사용하여 다음을 수행할 수 있습니다.
- 플랫폼 선택: OTLP를 지원하는 경우 현재 공급자를 포함하여 HTTPS를 통해 OpenTelemetry 프로토콜(OTLP/HTTPS)을 허용하는 백엔드로 원격 분석을 보냅니다.
- 전체 그림을 봅니다: 별도의 메커니즘 대신 하나의 통합을 통해 추적, 지표 및 로그를 가져옵니다.
- 더 빠르게 조사: 느리거나 실패한 요청을 찾고, 시간 경과에 따른 JVM 상태를 추적하고, 인시던트 동안 AEM 동작과 다른 서비스의 상관 관계를 파악합니다.
- 제어 유지: Cloud Manager 구성 파이프라인을 사용하여 데이터를 보낼 대상을 구성하고 자체 플랫폼에서 대시보드, 경고 및 유지를 관리합니다.
Adobe은 AEM에서 실행되는 OpenTelemetry Java 에이전트를 제공하고 업데이트하므로 설치하거나 업그레이드하지 않습니다. 원격 분석 위치를 정하세요.
작동 방식
다음 다이어그램은 AEM 서비스에서 관찰 가능한 플랫폼으로의 원격 측정의 논리적 흐름을 보여 줍니다.
OpenTelemetry Java 에이전트는 AEM 서비스에서 응용 프로그램 원격 분석을 수집하여 AEM 환경 내에서 실행 중인 OpenTelemetry Collector로 보냅니다. 수집기는 원격 분석을 처리하고 OTLP/HTTPS를 통해 구성된 가시성 플랫폼으로 전달합니다.
AEM 애플리케이션에서 생성된 원격 분석만 전송됩니다. 내부 호스트 이름, 주소, 컨테이너 식별자 및 운영 체제나 프로세스 세부 정보와 같은 기본 런타임 및 플랫폼에 대한 정보는 데이터가 환경을 떠나기 전에 제거됩니다.
사용 가능한 원격 분석
otel.yaml 파일을 구성하고 배포합니다. 구성 자습서를 참조하십시오.기억해야 할 몇 가지 세부 사항:
- 애플리케이션 요청에 초점을 맞춘 추적을 유지하기 위해 상태 프로브 및 스케줄러(Quartz) 작업과 같은 대량 내부 활동을 필터링합니다.
- Sling 리소스 해결, OSGi 서비스 및 JCR 액세스와 같이 세분화된 AEM 프레임워크-내부 범위는 이 릴리스에서 제공되지 않습니다.
- 지표는 표준 OpenTelemetry 이름을 사용합니다(예:
jvm.memory.used,jvm.gc.duration,jvm.thread.count및http.server.request.duration).
AEM 서비스 식별 방법
모든 추적, 지표 및 로그 항목은 플랫폼이 환경과 계층을 구분할 수 있도록 하는 리소스 속성을 포함합니다.
-
service.name은(는) 다음 패턴을 따라 프로그램, 환경, 계층 및 환경 유형을 식별합니다.code language-text cm-p<program>-e<environment>-aem-<author|publish|preview>-<environment-type>예를 들어
cm-p12345-e67890-aem-publish-prod은(는) 프로덕션 환경에서 실행되는 프로그램 12345 환경 67890의 Publish 서비스입니다. -
deployment.environment은(는)prod또는stage과(와) 같은 환경 유형을 식별합니다.
이러한 특성을 사용하여 원격 분석을 필터링하고 그룹화하고, 로그를 동일한 서비스의 추적 및 지표와 상호 연관시킬 수 있습니다.
제어할 사항
Cloud Manager 구성 파이프라인을 사용하여 config/otel.yaml 파일을 배포하여 통합을 구성합니다.
샘플 구성 파일은 다음과 같습니다.
kind: "Otel"
version: "v1"
metadata:
envTypes:
- "dev"
- "stage"
- "prod"
data:
enabled: true
type: "generic"
endpoint: "<YOUR_OTLP_HTTPS_ENDPOINT>"
authHeaderName: "Authorization"
authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}"
metrics: true
logs: true
advancedNetworking: false
구성은 다음을 결정합니다.
- 적용되는 환경 유형(
prod,stage,dev) - 대상 유형(
newrelic,dynatrace,generic등) 및 OTLP/HTTPS 엔드포인트 - 이름이
OTEL_CUSTOMER_AUTH인 Cloud Manager 암호 환경 변수로 참조되는 인증 자격 증명(authHeaderName및authHeaderValue) - 추적 외에 지표(
metrics: true) 및 로그(logs: true)를 내보낼지 여부 - 대상에 고급 네트워킹(
advancedNetworking: true)을 사용하는지 여부
인증 자격 증명(authHeaderValue)은 OTEL_CUSTOMER_AUTH(이)라는 Cloud Manager secret 환경 변수로 저장되고 구성 파일에서 참조되어야 합니다. 자격 증명을 저장소에 일반 텍스트로 저장하지 마십시오.
OTLP/HTTPS 끝점이 비공개이거나 알려진 안정적인 IP 주소의 아웃바운드 트래픽이 필요한 경우 전용 이그레스로 고급 네트워킹을 사용하도록 설정하십시오. Cloud Manager에서 환경에 대한 고급 네트워킹을 이미 프로비저닝하지 않는 한 advancedNetworking 설정은 영향을 주지 않습니다. 공용 SaaS 끝점은 표준 아웃바운드 네트워크 경로를 사용합니다.
지원되는 대상
다음을 포함하여 OTLP/HTTPS 끝점을 노출하는 모든 APM 플랫폼에 원격 분석을 보낼 수 있습니다.
- New Relic
- Dynatrace
- Datadog
- 그라파나 클라우드
- Splunk Observability Cloud
- Dash0
- 벌집
- 탄력적인 가시성
- 스모 논리
- ServiceNow Cloud Observability
이 목록은 완전하지 않습니다. OpenTelemetry는 원격 분석 형식 및 내보내기 프로토콜을 정의하며 선택한 플랫폼에서 데이터의 쿼리, 시각화, 보존 및 알림 방법을 결정합니다.
가시성 플랫폼 선택
원격 분석을 수신하려면 OTLP/HTTPS를 허용하는 플랫폼이 필요합니다. Adobe에서는 이를 제공하지 않으므로 고유한 가시성 플랫폼을 가져와야 합니다.
조직에서 이미 위의 플랫폼 중 하나를 사용하고 있는 경우 여기에서 시작하십시오. 그렇지 않은 경우 공급업체 호스팅(SaaS) 플랫폼과 자체 호스팅 플랫폼 중에서 선택합니다.
시작하기 전
- 환경: 프로덕션, 스테이징 및 개발 환경에서 개별적으로 OpenTelemetry를 사용할 수 있습니다. 그러나 HIPAA 범위 환경, 샌드박스 프로그램 및 RDE(신속한 개발 환경)는 지원되지 않습니다.
- 버전: 통합에서 OpenTelemetry Java 에이전트 2.x 및 OTLP/HTTPS 내보내기 프로토콜을 지원합니다.
다음 단계
구성 자습서에 따라 AEM WKND 샘플 프로젝트 또는 자체 AEM 프로젝트로 OpenTelemetry를 설정하십시오.