CloudWatch로 전송된 사용자 지정 원격 측정에 관련 정보를 추가하는 방법 - Amazon CloudWatch

CloudWatch로 전송된 사용자 지정 원격 측정에 관련 정보를 추가하는 방법

자체 지표 및 로그를 CloudWatch에 게시할 경우, 관련 원격 측정에 필요한 엔터티 정보가 기본적으로 준비되어 있지는 않습니다. CloudWatch로 지표를 전송하거나 CloudWatch Logs로 로그를 전송할 경우(PutMetricData 또는 PutLogEvents 작업을 통해), 이러한 로그 또는 지표에 엔터티 정보를 추가할 수 있습니다. 엔터티 정보는 원격 측정과 연결되며, 이러한 정보는 탐색 내용 살펴보기 기능에서 동일한 엔터티와 연결된 관련 원격 측정을 찾는 데 사용됩니다.

원격 측정으로 전송된 엔터티는 원격 측정이 연결된 리소스 또는 서비스를 나타냅니다. 예를 들어 서비스에 대한 지표 또는 AWS 리소스에서 가져온 지표가 이에 해당합니다. 코드에 연결된 엔터티를 식별하려면 엔터티의 KeyAttributesAttributes(선택 사항) 세트를 생성합니다.

참고

CloudWatch는 이전 3시간 내에 원격 측정이 전송된 엔터티에 대한 관련 리소스만 찾을 수 있습니다. 리소스가 희소 원격 측정만 내보낼 경우(3시간에 한 번 미만), CloudWatch 내에서 엔터티를 활성 상태로 유지하기 위해 추가 하트비트 원격 측정을 전송할 수 있습니다.

다음 섹션에서는 CloudWatch가 원격 측정과 연결된 리소스 및 서비스를 식별할 수 있도록 KeyAttributesAttributes를 생성하는 방법을 설명합니다.

CloudWatch의 또는 CloudWatch 로그에 있는 엔터티 객체의 KeyAttributes 속성은 CloudWatch의 엔터티를 고유하게 식별합니다. 이 속성은 키-값 페어 목록입니다. 동일한 KeyAttributes가 있는 엔터티는 동일한 엔터티로 간주됩니다. 동일한 엔터티와 연결된 원격 측정은 관련성이 있는 것으로 간주되며, 관련 내용 살펴보기 창에서 쉽게 찾을 수 있습니다.

참고

CloudWatch API에서는 속성을 KeyAttributes라고 하며, CloudWatch Logs API에서는 속성을 keyAttributes라고 합니다. 여기서는 동일한 속성으로 다룹니다.

Entity가 나타낼 수 있는 객체 유형은 5가지입니다.

  • AWS::Resource – 이 엔터티는 DynamoDB 테이블 또는 Amazon EC2 인스턴스 같은 AWS 리소스를 나타냅니다.

  • AWS::Service – 이 엔터티는 Amazon S3 같은 AWS 서비스를 나타냅니다. 예를 들어 이는 특정 Amazon S3 리소스와 연결되지 않은 ListBuckets 작업을 직접적으로 호출할 때 사용할 수 있습니다.

  • Service - 이 엔터티는 계정에서 실행되는 워크로드를 나타냅니다. 그 예로, 사용자가 관리하는 애플리케이션 또는 서비스를 들 수 있습니다.

  • Resource - 이 엔터티는 AWS에서 관리하지 않는 리소를 나타냅니다. 일례로 운영 체제 리소스(예: 프로세스 또는 파일 볼륨)가 이에 해당됩니다.

  • RemoteService - 이 엔터티는 원격 직접 호출의 외부 서비스를 나타냅니다. 그 예로 데이터베이스, 외부 캐시 또는 외부 엔드포인트에 대한 원격 직접 호출을 들 수 있습니다.

표시하려는 위의 유형에 따라 KeyAttributes에 대한 올바른 키-값 페어를 제공해야 합니다. 다음은 각 유형에 대한 설명입니다.

AWS::Resource

AWS 리소스를 지정하려면 다음과 같은 3가지 키 값 페어를 포함해야 합니다.

  • "Type": "AWS::Resource" - 이 키-값 페어는 엔터티를 AWS 리소스로 식별합니다.

  • "ResourceType": "<resource-type>" - ResourceType의 문자열 값은 AWS CloudFormation 리소스 유형 문자열입니다. 예: AWS::DynamoDB::Table.

  • "Identifier": "<resource-id>" - 리소스의 기본 리소스 식별자. 자세한 내용은 확장 개발을 위한 CloudFormation 사용 설명서의 primaryIdentifier를 참조하세요.

AWS::Service

AWS 서비스를 지정하려면 다음과 같은 2가지 키 값 페어를 포함해야 합니다.

  • "Type": "AWS::Service" - 이 키-값 페어는 엔터티를 AWS 서비스로 식별합니다.

  • "Name": "<service-name>" - Name의 값은 AWS CloudFormation 서비스 이름 문자열입니다. 예: AWS::DynamoDB.

Service

AWS에서 운영하지 않는 서비스를 지정하려면 다음과 같은 3가지 키 값 페어를 포함해야 합니다.

  • "Type": "Service" - 이 키-값 페어는 엔터티를 서비스로 식별합니다.

  • "Name": "<service-name>" - 지표를 전송하는 서비스의 이름을 나타냅니다. 예: my-service-frontend또는 api.myservice.com.

  • "Environment": "<environment-name>" - 이 속성은 서비스가 호스팅되는 위치 또는 서비스가 속한 환경을 지정합니다. 예: us-west-2 또는 myservice.production.

Resource

AWS에서 제공하지 않는 리소스를 지정하려면 다음과 같은 3가지 키 값 페어를 포함해야 합니다.

  • "Type": "Resource" - 이 키-값 페어는 엔터티를 리소스로 식별합니다.

  • "ResourceType": "<resource-type>" - 리소스 유형을 지정하는 문자열. 그 예로 Kubernetes 포드에 대한 K8s::Pod가 해당됩니다.

  • "Identifier": "<resource-id>" – 리소스의 문자열 식별자. 파이프로 구분된 여러 네임스페이스를 포함할 수 있습니다. 예를 들어 Kubernetes 포드는 MyCluster|MyNamespace|MyPod처럼 클러스터 이름, 네임스페이스, 포드 이름으로 명명할 수 있습니다.

RemoteService

원격 서비스를 지정하려면 다음과 같은 2가지 키 값 페어를 포함해야 합니다.

  • "Type": "RemoteService" - 이 키-값 페어는 엔터티를 원격 서비스로 식별합니다.

  • "Name": "<remote-service-name>" - 애플리케이션이 원격 직접 호출에서 외부 서비스를 참조하는 방법을 지정합니다. 예: api.test.myservice.com.

원격 측정과 함께 제공하는 Entity에 대한 추가 세부 정보를 제공할 수 있습니다. 여기에는 플랫폼, 리소스, 애플리케이션 또는 원격 측정 공급자에 대한 세부 정보가 포함될 수 있습니다. 다음 표에서는 이러한 각 데이터 유형에 사용할 수 있는 키워드를 설명합니다.

참고

CloudWatch API에서는 속성을 Attributes라고 하며, CloudWatch Logs API에서는 속성을 attributes라고 합니다. 여기서는 동일한 속성으로 다룹니다.

플랫폼 세부 정보

키워드 사용법 값의 도메인 예시

PlatformType

호스팅 플랫폼을 정의합니다.

AWS::EKS, AWS::ECS, AWS::EC2, AWS::Lambda, K8s, 일반

AWS::EC2

EKS.Cluster

Amazon ECS 클러스터의 이름.

기본 구분 기호가 있는 영숫자 문자열.

FlyingSquad

K8s.Cluster

자체 호스팅되는 Kubernetes 클러스터의 이름.

기본 구분 기호가 있는 영숫자 문자열.

minicube

K8s.Namespace

Amazon EKS 또는 K8s 클러스터의 Kubernetes 네임스페이스 이름.

기본 구분 기호가 있는 영숫자 문자열.

default, pet-clinic

K8s.Workload

Amazon EKS 및 K8s 클러스터의 Kubernetes 워크로드 이름.

기본 구분 기호가 있는 영숫자 문자열.

frontend

K8s.Node

Amazon EKS 및 K8s 클러스터에 있는 Kubernetes 노드의 ID.

K8s 노드 이름(예: Amazon EC2 인스턴스 DNS 이름).

ip-11-22-33-44.ec2.internal

K8s.Pod

Amazon EKS 및 K8s 클러스터에 있는 Kubernetes 포드의 ID.

K8s 포드 식별자.

frontend-1234abcd56-ef7890

EC2.AutoScalingGroup

Amazon EC2 AutoScaling 그룹의 이름.

기본 구분 기호가 있는 영숫자 문자열.

my-asg-name-1

EC2.InstanceId

Amazon EC2 인스턴스의 ID.

Amazon EC2 인스턴스 식별자.

i-1234abcd5678ef90

ECS.Cluster

Amazon ECS 클러스터의 ID.

Amazon EKS 클러스터 이름.

MyCluster

ECS.Service

Amazon ECS 서비스의 ID.

Amazon ECS 서비스.

MyService

ECS.Task

Amazon ECS 작업의 ID.

Amazon ECS 작업 ID.

task-123abc

Lambda.Function

Lambda 함수의 ID.

Lambda 함수 이름.

MyFunction

Host

모든 플랫폼 유형의 호스트 이름.

하위 도메인 형식.

ip-111-22-33-44.example.com

리소스 세부 정보

키워드 사용법 값의 도메인 예시

AWS.Resource.ARN

AWS 리소스의 ARN.

기본 구분 기호가 있는 영숫자 문자열.

arn:aws:dynamodb:us-east-1:123456789012:table/myDynamoDBTable

애플리케이션 세부 정보

키워드 사용법 값의 도메인 예시

AWS.Application

AppRegistry에 있는 애플리케이션의 이름.

기본 구분 기호가 있는 영숫자 문자열.

PetClinicApp

AWS.Application.ARN

AppRegistry에 있는 애플리케이션의 ARN.

기본 구분 기호가 있는 영숫자 문자열.

arn:aws:servicecatalog:us-east-1:1234567890:/applications/...

원격 측정 공급자 세부 정보

키워드 사용법 값의 도메인 예시

Telemetry.SDK

계측된 서비스에 대한 OTEL SDK 버전의 지문.

기본 구분 기호가 있는 영숫자 문자열.

opentelemetry,1.32.0-aws-SNAPSHOT,java,Auto

Telemetry.Agent

원격 측정 데이터를 수집하고 전송하는 데 사용되는 에이전트의 지문.

기본 구분 기호가 있는 영숫자 문자열.

CWAgent/1.300026.3, ADOTCollector/1.x

Telemetry.Source

원격 측정이 수집된 애플리케이션 지점 또는 원격 측정 데이터 소스에 사용된 지점을 지정합니다.

ServerSpan, ClientSpan, ProducerSpan, ConsumerSpan, LocalRoot Span, JMX, OS.

ClientSpan, JMX