CloudWatch Application Signals 활성화 - Amazon CloudWatch

CloudWatch Application Signals 활성화

CloudWatch Application Signals를 사용하면 AWS에서 애플리케이션을 자동으로 계측하여 비즈니스 목표에 따라 애플리케이션 성능을 추적할 수 있습니다. Application Signals는 Java 애플리케이션, 해당 종속성 및 엣지에 대한 통합 애플리케이션 중심 보기를 제공합니다. 자세한 내용은 Application Signals 단원을 참조하십시오.

CloudWatch Application Signals는 CloudWatch 에이전트를 활용하여 자동 계측 애플리케이션으로부터 지표와 트레이스를 수신하고, 필요에 따라 높은 카디널리티를 줄이기 위한 규칙을 적용한 다음, 처리된 텔레메트리를 CloudWatch에 게시합니다. 에이전트 구성 파일을 사용하여 Application Signals용으로 CloudWatch 에이전트에 사용자 지정 구성을 제공할 수 있습니다. 우선, 에이전트 구성 파일의 logs 섹션 내 metrics_collected 섹션 아래에 application_signals 섹션이 있으면 CloudWatch 에이전트가 자동 계측된 애플리케이션에서 지표를 수신하도록 지정됩니다. 마찬가지로, 에이전트 구성 파일의 traces 섹션 내 traces_collected 섹션 아래에 application_signals 섹션이 있으면 CloudWatch 에이전트가 자동 계측된 애플리케이션에서 지표를 수신할 수 있게 활성화되도록 지정됩니다. 또한 이 섹션에 설명된 대로 사용자 지정 구성 규칙을 전달하여 높은 카디널리티 텔레메트리 게시를 줄일 수도 있습니다.

  • Amazon EKS 클러스터의 경우 Amazon CloudWatch Observability EKS 추가 기능을 설치하면 기본적으로 CloudWatch 에이전트가 자동 계측된 애플리케이션에서 지표와 트레이스를 모두 수신하도록 활성화됩니다. 필요에 따라 사용자 지정 구성 규칙을 전달하려면 (선택 사항) 추가 구성에 설명된 대로 추가 구성을 사용하여 생성하거나 업데이트할 때 Amazon EKS 추가 기능에 사용자 지정 에이전트 구성을 전달하면 됩니다.

  • Amazon EC2를 비롯한 기타 지원되는 플랫폼의 경우 이 섹션 뒷부분에 설명된 대로 application_signals 섹션과 사용자 지정 구성 규칙(선택 사항)을 지정하여 Application Signals를 활성화하는 에이전트 구성으로 CloudWatch 에이전트를 시작해야 합니다.

다음은 CloudWatch Application Signals와 관련된 CloudWatch 에이전트 구성 파일의 필드 개요입니다.

  • logs

    • metrics_collected – 이 필드에는 CloudWatch Application Signals, Container Insights 등의 사용 사례를 활성화하기 위해 Amazon EKS에 대한 향상된 관찰성을 이용하여 에이전트가 로그를 수집하도록 지정하는 섹션이 포함될 수 있습니다.

      참고

      이전에는 에이전트가 임베디드 지표 형식의 로그를 수집하도록 지정하는 데에도 이 섹션을 사용했습니다. 이러한 설정은 더 이상 필요하지 않습니다.

      • application_signals(선택 사항) CloudWatch Application Signals 촉진을 위해 자동 계측 애플리케이션에서 지표를 수신하도록 CloudWatch Application Signals를 활성화할 것을 지정합니다.

        • rules(선택 사항) 지표와 트레이스를 조건부로 선택하고 카디널리티가 높은 시나리오를 처리하기 위한 작업을 적용하는 규칙의 배열입니다. 각 규칙은 다음 필드를 포함할 수 있습니다.

          • rule_name(선택 사항) 규칙의 이름입니다.

          • selectors(선택 사항) 지표 및 트레이스 측정기준 매처의 배열입니다. 각 선택기는 다음 필드를 제공해야 합니다.

            • dimension selectors가 비어 있지 않은 경우 필수입니다. 필터로 사용할 지표와 트레이스의 측정기준을 지정합니다.

            • match selectors가 비어 있지 않은 경우 필수입니다. 지정된 측정기준의 값을 일치시키는 데 사용되는 와일드카드 패턴입니다.

          • action(선택 사항) 지정된 선택기와 일치하는 지표 및 트레이스에 적용할 작업입니다. action의 값은 다음 키워드 중 하나여야 합니다.

            • keep selectors와 일치하는 경우 지표 및 트레이스만 CloudWatch로 전송하도록 지정합니다.

            • drop selectors와 일치하는 지표와 트레이스를 삭제하도록 지정합니다.

            • replace selectors와 일치하는 지표와 트레이스의 측정기준을 교체하도록 지정합니다. replacements 섹션에 따라 교체됩니다.

          • replacements actionreplace인 경우 필수입니다. actionreplace일 때 지정된 selectors와 일치하는 지표 및 트레이스에 적용되는 측정기준 및 값 페어의 배열입니다. 각 대체는 다음 필드를 제공해야 합니다.

            • target_dimension replacements가 비어 있지 않은 경우 필수입니다. 대체해야 하는 측정기준을 지정합니다.

            • value replacements가 비어 있지 않은 경우 필수입니다. target_dimension의 원래 값을 대체할 값입니다.

        • limiter(선택 사항) 이 섹션을 사용하여 Application Signals가 CloudWatch로 보내는 지표 및 차원 수를 제한하여 비용을 최적화합니다.

          • disabled(선택 사항) true인 경우 지표 제한 기능이 비활성화됩니다. 기본값은 입니다.false

          • drop_threshold(선택 사항) CloudWatch 에이전트 하나로 내보낼 수 있는 한 교체 간격의 서비스당 최대 개별 지표 수입니다. 기본값은 500입니다.

          • rotation_interval(선택 사항) 제한기가 개별 계산을 위해 지표 레코드를 재설정하는 간격입니다. 이는 일련의 숫자와 단위 접미사가 포함된 문자열로 표현됩니다. 분수는 지원됩니다. 지원되는 단위 접미사는 s, m, h, ms, us, ns입니다.

            1h의 기본값은 1시간입니다.

          • log_dropped_metrics(선택 사항) Application Signals 지표가 삭제될 때 에이전트가 CloudWatch 에이전트 로그에 로그를 기록해야 하는지 여부를 지정합니다. 기본값은 false입니다.

            참고

            이 로깅을 활성화하려면 agent 섹션의 debug 파라미터도 true로 설정해야 합니다.

  • traces

    • traces_collected

      • application_signals 선택 사항입니다. 이를 지정하면 CloudWatch Application Signals 촉진을 위해 CloudWatch 에이전트가 자동 계측 애플리케이션에서 트레이스를 수신할 수 있습니다.

참고

사용자 지정 application_signals 규칙이 logs 섹션에 포함된 metrics_collected 섹션 아래에 지정되어 있더라도 암시적으로 traces_collected 섹션에도 적용됩니다. 지표와 트레이스 모두에 동일한 규칙 세트가 적용됩니다.

서로 다른 작업을 포함하는 여러 규칙이 있는 경우 keep, drop, replace 순서로 적용됩니다.

다음은 사용자 지정 규칙을 적용하는 전체 CloudWatch 에이전트 구성 파일의 예제입니다.

{ "logs": { "metrics_collected": { "application_signals": { "rules": [ { "rule_name": "keep01", "selectors": [ { "dimension": "Service", "match": "pet-clinic-frontend" }, { "dimension": "RemoteService", "match": "customers-service" } ], "action": "keep" }, { "rule_name": "drop01", "selectors": [ { "dimension": "Operation", "match": "GET /api/customer/owners/*" } ], "action": "drop" }, { "rule_name": "replace01", "selectors": [ { "dimension": "Operation", "match": "PUT /api/customer/owners/*/pets/*" }, { "dimension": "RemoteOperation", "match": "PUT /owners" } ], "replacements": [ { "target_dimension": "Operation", "value": "PUT /api/customer/owners/{ownerId}/pets{petId}" } ], "action": "replace" } ] } } }, "traces": { "traces_collected": { "application_signals": {} } } }

이전 예제 구성 파일의 경우 rules는 다음과 같이 처리됩니다.

  1. keep01 규칙은 Service 측정기준이 pet-clinic-frontend이고 RemoteService 측정기준이 customers-service인 모든 지표와 트레이스가 유지되도록 합니다.

  2. keep01을 적용한 후 처리된 지표 및 트레이스의 경우 drop01 규칙은 Operation 측정기준이 GET /api/customer/owners/*인 지표 및 트레이스가 삭제되도록 합니다.

  3. drop01을 적용한 후 처리된 지표 및 트레이스의 경우 replace01 규칙은 Operation 측정기준이 PUT /api/customer/owners/*/pets/*이고 RemoteOperation 측정기준이 PUT /owners인 지표 및 트레이스를 업데이트하므로 Operation 측정기준이 이제PUT /api/customer/owners/{ownerId}/pets{petId}로 대체됩니다.

다음은 지표 제한을 100으로 변경하고, 삭제된 지표의 로깅을 활성화하고, 교체 간격을 2시간으로 설정하여 Application Signals의 카디널리티를 관리하는 CloudWatch 구성 파일의 전체 예시입니다.

{ "logs": { "metrics_collected": { "application_signals": { "limiter": { "disabled": false, "drop_threshold": 100, "rotation_interval": "2h", "log_dropped_metrics": true } } }, "traces": { "traces_collected": { "application_signals": {} } } } }