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를 설정하는 방법을 설명합니다.

AVAILABILITY
이 기능은 제한된 가용성​에 있습니다. 사용하려면 aemcs-apm-beta@adobe.com(으)로 전자 메일을 보내 액세스를 요청하세요. Adobe은 요청에 응답한 직후 환경에 대한 OpenTelemetry를 사용하도록 설정합니다. 현재 환경에서 Adobe의 기본 제공 APM 통합을 사용하는 경우 OpenTelemetry가 활성화되면 두 통합이 동시에 실행될 수 없으므로 해당 통합은 데이터 전송을 중지합니다.
HIPAA 범위 환경, RDE(빠른 개발 환경) 및 샌드박스에서 사용할 수 없음​입니다.

OpenTelemetry를 사용해야 하는 이유

OpenTelemetry를 사용하여 다음을 수행할 수 있습니다.

  • 플랫폼 선택: OTLP를 지원하는 경우 현재 공급자를 포함하여 HTTPS를 통해 OpenTelemetry 프로토콜(OTLP/HTTPS)을 허용하는 백엔드로 원격 분석을 보냅니다.
  • 전체 그림을 봅니다: 별도의 메커니즘 대신 하나의 통합을 통해 추적, 지표 및 로그를 가져옵니다.
  • 더 빠르게 조사: 느리거나 실패한 요청을 찾고, 시간 경과에 따른 JVM 상태를 추적하고, 인시던트 동안 AEM 동작과 다른 서비스의 상관 관계를 파악합니다.
  • 제어 유지: Cloud Manager 구성 파이프라인을 사용하여 데이터를 보낼 대상을 구성하고 자체 플랫폼에서 대시보드, 경고 및 유지를 관리합니다.

Adobe은 AEM에서 실행되는 OpenTelemetry Java 에이전트를 제공하고 업데이트하므로 설치하거나 업그레이드하지 않습니다. 원격 분석 위치를 정하세요.

작동 방식

다음 다이어그램은 AEM 서비스에서 관찰 가능한 플랫폼으로의 원격 측정의 논리적 흐름을 보여 줍니다.

AEM 서비스에서 고객 관찰 가능성 플랫폼으로 원격 분석의 논리 흐름

OpenTelemetry Java 에이전트는 AEM 서비스에서 응용 프로그램 원격 분석을 수집하여 AEM 환경 내에서 실행 중인 OpenTelemetry Collector로 보냅니다. 수집기는 원격 분석을 처리하고 OTLP/HTTPS를 통해 구성된 가시성 플랫폼으로 전달합니다.

AEM 애플리케이션에서 생성된 원격 분석만 전송됩니다. 내부 호스트 이름, 주소, 컨테이너 식별자 및 운영 체제나 프로세스 세부 정보와 같은 기본 런타임 및 플랫폼에 대한 정보는 데이터가 환경을 떠나기 전에 제거됩니다.

사용 가능한 원격 분석

신호
받은 항목
활성화 방법
추적
애플리케이션이 처리하는 요청(인바운드 HTTP 요청, 서블릿 처리 및 아웃바운드 호출)에 대한 범위입니다.
Cloud Manager 구성 파이프라인을 사용하여 otel.yaml 파일을 구성하고 배포합니다. 구성 자습서를 참조하십시오.
지표
JVM 런타임 지표(메모리, 가비지 수집, 스레드, CPU 사용률) 및 HTTP 서버 요청 지표(속도, 지연 및 오류율)입니다.
Cloud Manager 구성 파이프라인을 사용하여 metrics: true과(와) 함께 otel.yaml 파일을 구성하고 배포합니다. 구성 자습서를 참조하십시오.
로그
OpenTelemetry 로그 신호를 사용하여 전송된 AEM 애플리케이션 로그 항목(WARN 이상)입니다. Dispatcher 및 CDN 로그가 전송되지 않습니다.
Cloud Manager 구성 파이프라인을 사용하여 logs: true과(와) 함께 otel.yaml 파일을 구성하고 배포합니다. 구성 자습서를 참조하십시오.

기억해야 할 몇 가지 세부 사항:

  • 애플리케이션 요청에 초점을 맞춘 추적을 유지하기 위해 상태 프로브 및 스케줄러(Quartz) 작업과 같은 대량 내부 활동을 필터링합니다.
  • Sling 리소스 해결, OSGi 서비스 및 JCR 액세스와 같이 세분화된 AEM 프레임워크-내부 범위는 이 릴리스에서 제공되지 않습니다.
  • 지표는 표준 OpenTelemetry 이름을 사용합니다(예: jvm.memory.used, jvm.gc.duration, jvm.thread.count 및 http.server.request.duration).
WARNING
OpenTelemetry 및​부터 로그 전달을 통해 동일한 대상으로 로그를 보내는 경우 중복 로그 메시지가 수신됩니다. 대상당 하나의 경로만 활성화하거나 각각을 다른 대상으로 전송합니다.
로그 전달은 별도의 메커니즘이며 오늘날과 마찬가지로 계속 작동합니다.

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) 플랫폼과 자체 호스팅 플랫폼 중에서 선택합니다.

공급업체 호스팅(SaaS)
자체 호스팅
설치
설치 또는 운영할 대상이 없습니다.
플랫폼을 설치, 업그레이드 및 확장할 수 있습니다.
데이터 위치
원격 분석을 통해 환경이 종료되므로 보안 또는 개인 정보 보호 검토가 필요할 수 있습니다.
원격 분석이 사용자가 제어하는 인프라에 유지됩니다.
기능
대시보드, 경고 및 APM 보기는 일반적으로 기본적으로 제공됩니다. 일부 기능은 공급업체별로 다릅니다.
기능은 선택한 소프트웨어에 따라 다릅니다.
비용
가격은 일반적으로 데이터 볼륨에 따라 다릅니다.
인프라 및 엔지니어링 시간에 대한 비용을 지불합니다.
가용성
공급업체가 서비스를 운영합니다.
가동 시간, 스토리지, 백업 및 보존을 관리합니다.

시작하기 전

  • 환경: 프로덕션, 스테이징 및 개발 환경에서 개별적으로 OpenTelemetry를 사용할 수 있습니다. 그러나 HIPAA 범위 환경, 샌드박스 프로그램 및 RDE(신속한 개발 환경)는 지원되지 않습니다.
  • 버전: 통합에서 OpenTelemetry Java 에이전트 2.x 및 OTLP/HTTPS 내보내기 프로토콜을 지원합니다.

다음 단계

구성 자습서에 따라 AEM WKND 샘플 프로젝트 또는 자체 AEM 프로젝트로 OpenTelemetry를 설정하십시오.

추가 리소스

recommendation-more-help
experience-manager-learn-help-cloud-service