Como adicionar informações relacionadas à telemetria personalizada enviada ao CloudWatch - Amazon CloudWatch

Como adicionar informações relacionadas à telemetria personalizada enviada ao CloudWatch

Quando você publica suas próprias métricas e logs no CloudWatch, as informações da entidade necessárias para a telemetria relacionada não estão lá por padrão. Quando você envia métricas para o CloudWatch ou logs para o CloudWatch Logs (com as operações PutMetricData ou PutLogEvents), você pode adicionar informações da entidade a esses logs ou métricas. As informações da entidade são associadas à telemetria e usadas no recurso Analisar dados relacionados para encontrar a telemetria relacionada associada à mesma entidade.

A entidade enviada com telemetria representa um recurso ou serviço ao qual a telemetria está associada. Por exemplo, uma métrica sobre um serviço ou que vem de um recurso da AWS. Para identificar a entidade associada no código, você cria um conjunto de KeyAttributes e Attributes opcionais da entidade.

nota

O CloudWatch só pode encontrar recursos relacionados de entidades que tiveram telemetria enviada nas últimas três horas. Se o recurso emitir apenas telemetria esparsa (menos de uma vez a cada três horas), é possível enviar telemetria de pulsação adicional para manter a entidade ativa no CloudWatch.

Para obter informações sobre como adicionar informações de entidade, consulte Informações da entidade no formato EMF.

As seções a seguir descrevem como criar KeyAttributes e Attributes para que o CloudWatch possa identificar os recursos e serviços associados à telemetria.

A propriedade KeyAttributes dos objetos da entidade (no CloudWatch ou nos logs do CloudWatch) identifica exclusivamente a entidade do CloudWatch. É uma lista de pares de chave/valor. Entidades com a mesma propriedade KeyAttributes são consideradas como sendo a mesma entidade. A telemetria associada à mesma entidade é considerada relacionada e pode ser facilmente encontrada no painel Analisar dados relacionados.

nota

Na API do CloudWatch, a propriedade é denominada KeyAttributes. Na API do CloudWatch Logs, a propriedade é denominada keyAttributes. Aqui elas são tratadas como a mesma propriedade.

Há cinco tipos possíveis de objetos que uma Entity pode representar.

  • AWS::Resource: a entidade representa um recurso da AWS, como uma tabela do DynamoDB ou uma instância do Amazon EC2.

  • AWS::Service: a entidade representa um serviço da AWS, como o Amazon S3. Isso pode ser usado, por exemplo, ao chamar a operação ListBuckets, que não está associada a um recurso específico do Amazon S3.

  • Service: a entidade representa uma workload em execução na conta. Por exemplo, uma aplicação ou serviço que você gerencia.

  • Resource: a entidade representa um recurso que não é gerenciado pela AWS, por exemplo, por recursos do sistema operacional, como processos ou volumes de arquivos.

  • RemoteService: a entidade representa um serviço externo em uma chamada remota. Por exemplo, uma chamada remota para um banco de dados, cache externo ou endpoint externo.

Dependendo de qual dos tipos acima você está tentando representar, é necessário fornecer os pares de chave/valor corretos para KeyAttributes. Os seguintes itens descrevem cada tipo.

AWS::Resource

Para especificar um recurso da AWS, você deve incluir os três pares de chave/valor abaixo:

  • "Type": "AWS::Resource": este par de chave/valor identifica a entidade como um recurso da AWS.

  • "ResourceType": "<resource-type>": o valor da string do ResourceType é a string do tipo de recurso do AWS CloudFormation. Por exemplo, .AWS::DynamoDB::Table

  • "Identifier": "<resource-id>": o identificador primário do recurso. Para obter mais informações, consulte primaryIdentifier no Guia do usuário de desenvolvimento de extensões do CloudFormation.

AWS::Service

Para especificar um serviço da AWS, você deve incluir os três pares de chave/valor abaixo:

  • "Type": "AWS::Service": este par de chave/valor identifica a entidade como um serviço da AWS.

  • "Name": "<service-name>": o valor do Name é a string do nome do serviço do AWS CloudFormation. Por exemplo, .AWS::DynamoDB

Service

Para especificar um serviço que não é operado pela AWS, você deve incluir os três pares de chave/valor abaixo:

  • "Type": "Service": este par de chave/valor identifica a entidade como um serviço.

  • "Name": "<service-name>": representa o nome do serviço que está enviando as métricas. Por exemplo, my-service-frontend ou api.myservice.com.

  • "Environment": "<environment-name>": este atributo especifica onde o serviço está hospedado ou o ambiente ao qual ele pertence. Por exemplo: us-west-2 ou myservice.production.

Resource

Para especificar um recurso que não é fornecido pela AWS, você deve incluir os três pares de chave/valor abaixo:

  • "Type": "Resource": este par de chave/valor identifica a entidade como um recurso.

  • "ResourceType": "<resource-type>": uma string especificando o tipo de recurso. Por exemplo, K8s::Pod para um pod do Kubernetes.

  • "Identifier": "<resource-id>": um identificador de string do recurso. Pode conter vários nomes, separados por barras verticais. Por exemplo, um pod do Kubernetes pode ser representado pelo nome do cluster, namespace e nome do pod, como MyCluster|MyNamespace|MyPod.

RemoteService

Para especificar um serviço remoto, você deve incluir os três pares de chave/valor abaixo:

  • "Type": "RemoteService": este par de chave/valor identifica a entidade como um serviço remoto.

  • "Name": "<remote-service-name>": especifica como a aplicação se refere ao serviço externo em uma chamada remota. Por exemplo, .api.test.myservice.com

Você pode fornecer detalhes adicionais sobre a Entity que você fornece com sua telemetria. Isso pode incluir detalhes sobre a plataforma, o recurso, a aplicação ou o provedor de telemetria. As tabelas a seguir descrevem as palavras-chave que você pode usar para cada um desses tipos de dados.

nota

Na API do CloudWatch, a propriedade é denominada Attributes. Na API do CloudWatch Logs, a propriedade é denominada attributes. Aqui elas são tratadas como a mesma propriedade.

Detalhes da plataforma

Palavra-chave Uso Domínio de valores Exemplos

PlatformType

Define a plataforma hospedada.

AWS::EKS, AWS::ECS, AWS::EC2, AWS::Lambda, K8s, Generic

AWS::EC2

EKS.Cluster

O nome do cluster do Amazon EKS.

String alfanumérica com delimitadores básicos.

FlyingSquad

K8s.Cluster

Nome do cluster autohospedado do Kubernetes.

String alfanumérica com delimitadores básicos.

minicube

K8s.Namespace

Nome do namespace do Kubernetes nos clusters do Amazon EKS ou K8s.

String alfanumérica com delimitadores básicos.

default, pet-clinic

K8s.Workload

Nome da workload do Kubernetes nos clusters do Amazon EKS e K8s.

String alfanumérica com delimitadores básicos.

frontend

K8s.Node

Identidade do nó do Kubernetes nos clusters do Amazon EKS e K8s.

Nome do nó do K8s (por exemplo, nome DNS da instância do Amazon EC2).

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

K8s.Pod

Identidade do pod do Kubernetes nos clusters do Amazon EKS e K8s.

Identificador de pods do K8s.

frontend-1234abcd56-ef7890

EC2.AutoScalingGroup

Nome do grupo do AutoScaling do Amazon EC2.

String alfanumérica com delimitadores básicos.

my-asg-name-1

EC2.InstanceId

Identidade da instância do Amazon EC2.

Identificador de instância do Amazon EC2.

i-1234abcd5678ef90

ECS.Cluster

Identidade do cluster do Amazon ECS.

Nome do cluster do Amazon ECS.

MyCluster

ECS.Service

Identidade do serviço do Amazon ECS.

Nome do serviço do Amazon ECS.

MyService

ECS.Task

Identidade da tarefa do Amazon ECS.

ID da tarefa do Amazon ECS.

task-123abc

Lambda.Function

Identidade da função do Lambda.

Nome da função do Lambda.

MyFunction

Host

Nome do host de todos os tipos de plataforma.

Formato de subdomínio.

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

Detalhes do recurso

Palavra-chave Uso Domínio de valores Exemplos

AWS.Resource.ARN

ARN do recurso da AWS.

String alfanumérica com delimitadores básicos.

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

Detalhes da aplicação

Palavra-chave Uso Domínio de valores Exemplos

AWS.Application

Nome da aplicação no AppRegistry.

String alfanumérica com delimitadores básicos.

PetClinicApp

AWS.Application.ARN

ARN da aplicação no AppRegistry.

String alfanumérica com delimitadores básicos.

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

Detalhes do provedor de telemetria

Palavra-chave Uso Domínio de valores Exemplos

Telemetry.SDK

A impressão digital da versão do SDK do OTel de serviços instrumentados.

String alfanumérica com delimitadores básicos.

opentelemetry,1.32.0-aws-SNAPSHOT,java,Auto

Telemetry.Agent

A impressão digital do agente usado para coletar e enviar dados de telemetria.

String alfanumérica com delimitadores básicos.

CWAgent/1.300026.3, ADOTCollector/1.x

Telemetry.Source

Especifica o ponto da aplicação em que a telemetria foi coletada ou o que foi usado como fonte de dados de telemetria.

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

ClientSpan, JMX