Cómo agregar información relacionada a la telemetría personalizada que se envía a CloudWatch - Amazon CloudWatch

Cómo agregar información relacionada a la telemetría personalizada que se envía a CloudWatch

Cuando publica sus propias métricas y registros en CloudWatch, la información de la entidad necesaria para la telemetría relacionada no aparece de forma predeterminada. Al enviar métricas a CloudWatch o registros a Registros de CloudWatch (con las operaciones PutMetricData o PutLogEvents), puede agregar información de la entidad a esos registros o métricas. La información de la entidad se asocia a la telemetría y se utiliza en la característica Explorar lo relacionado para buscar la telemetría relacionada asociada a la misma entidad.

La entidad que se envía con la telemetría representa un recurso o servicio al que está asociada la telemetría. Por ejemplo, una métrica sobre un servicio o que proviene de un recurso de AWS. Para identificar en el código la entidad asociada, puede crear un conjunto de KeyAttributes y Attributes opcional de la entidad.

nota

CloudWatch solo puede buscar recursos relacionados de entidades para las que se haya enviado telemetría en las últimas tres horas. Si su recurso solo emite telemetría dispersa (menos de una vez cada 3 horas), puede que quiera enviar telemetría de latidos adicional para mantener la entidad activa en CloudWatch.

Para obtener información sobre cómo agregar información de la entidad, consulte Información de la entidad en formato EMF.

En las siguientes secciones se describe cómo crear las propiedades KeyAttributes y Attributes para que CloudWatch pueda identificar los recursos y servicios asociados a la telemetría.

La propiedad KeyAttributes de los objetos Entity (en CloudWatch o en Registros de CloudWatch) identifica de forma exclusiva la entidad en CloudWatch. Se trata de una lista de pares clave-valor. Las entidades con la misma propiedad KeyAttributes se consideran la misma entidad. La telemetría asociada a la misma entidad se considera relacionada y se puede buscar fácilmente en el panel Explorar lo relacionado.

nota

En la API de CloudWatch, la propiedad se denomina KeyAttributes. En la API de Registros de CloudWatch, la propiedad se denomina keyAttributes. Aquí se tratan como la misma propiedad.

Hay cinco tipos posibles de objetos que una propiedad Entity puede representar.

  • AWS::Resource: la entidad representa un recurso de AWS, como una tabla de DynamoDB o una instancia de Amazon EC2.

  • AWS::Service: la entidad representa un servicio de AWS, como Amazon S3. Esto podría usarse, por ejemplo, al llamar a la operación ListBuckets, que no está asociada a un recurso específico de Amazon S3.

  • Service: la entidad representa una carga de trabajo que se ejecuta en la cuenta. Por ejemplo, una aplicación o un servicio que usted administra.

  • Resource: la entidad representa un recurso que AWS no administra; por ejemplo, recursos del sistema operativo, como los procesos o los volúmenes de archivos.

  • RemoteService: la entidad representa un servicio externo en una llamada remota. Por ejemplo, una llamada remota a una base de datos, una caché externa o un punto de conexión externo.

Según cuál de los tipos anteriores intente representar, debe proporcionar los pares clave-valor correctos para la propiedad KeyAttributes. A continuación se describe cada tipo.

AWS::Resource

Para especificar un recurso de AWS, tiene que incluir los tres pares de clave-valor siguientes:

  • "Type": "AWS::Resource": este par clave-valor identifica la entidad como recurso de AWS.

  • "ResourceType": "<resource-type>": el valor de cadena de ResourceType es la cadena del tipo de recurso de AWS CloudFormation. Por ejemplo, AWS::DynamoDB::Table.

  • "Identifier": "<resource-id>": el identificador principal del recurso. Para obtener más información, consulte primaryIdentifier en Extension Development for CloudFormation User Guide.

AWS::Service

Para especificar un servicio de AWS, tiene que incluir los dos pares clave-valor siguientes:

  • "Type": "AWS::Service": este par clave-valor identifica la entidad como servicio de AWS.

  • "Name": "<service-name>": el valor de Name es la cadena del nombre de servicio de AWS CloudFormation. Por ejemplo, AWS::DynamoDB.

Service

Para especificar un servicio que no esté a cargo de AWS, tiene que incluir los tres pares clave-valor siguientes:

  • "Type": "Service": este par clave-valor identifica la entidad como servicio.

  • "Name": "<service-name>": representa el nombre del servicio que envía las métricas. Por ejemplo, my-service-frontend o api.myservice.com.

  • "Environment": "<environment-name>": este atributo especifica dónde se aloja el servicio, o el entorno al que pertenece. Por ejemplo, us-west-2 o myservice.production.

Resource

Para especificar un recurso que no proporcione AWS, tiene que incluir los tres pares clave-valor siguientes:

  • "Type": "Resource": este par clave-valor identifica la entidad como recurso.

  • "ResourceType": "<resource-type>": una cadena que especifica el tipo de recurso. Por ejemplo, K8s::Pod para un pod de Kubernetes.

  • "Identifier": "<resource-id>": un identificador de cadena del recurso. Puede contener varios nombres, separados por barras verticales. Por ejemplo, un pod de Kubernetes podría representarse por el nombre del clúster, el espacio de nombres y el nombre del pod, como MyCluster|MyNamespace|MyPod.

RemoteService

Para especificar un servicio remoto, tiene que incluir los dos pares clave-valor siguientes:

  • "Type": "RemoteService": este par clave-valor identifica la entidad como servicio remoto.

  • "Name": "<remote-service-name>": especifica de qué manera la aplicación hace referencia al servicio externo en una llamada remota. Por ejemplo, api.test.myservice.com.

Puede proporcionar detalles adicionales sobre el objeto Entity que proporciona con la telemetría. Esto puede incluir detalles sobre la plataforma, el recurso, la aplicación o el proveedor de telemetría. En las siguientes tablas se describen las palabras clave que puede utilizar para cada uno de estos tipos de datos.

nota

En la API de CloudWatch, la propiedad se denomina Attributes. En la API de Registros de CloudWatch, la propiedad se denomina attributes. Aquí se tratan como la misma propiedad.

Detalles de la plataforma

Palabra clave Uso Dominio de valores Ejemplos

PlatformType

Define la plataforma alojada.

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

AWS::EC2

EKS.Cluster

Nombre del clúster de Amazon EKS.

Cadena alfanumérica con delimitadores básicos.

FlyingSquad

K8s.Cluster

Nombre del clúster de Kubernetes autoalojado.

Cadena alfanumérica con delimitadores básicos.

minicube

K8s.Namespace

Nombre del espacio de nombres de Kubernetes en los clústeres de Amazon EKS o K8s.

Cadena alfanumérica con delimitadores básicos.

default, pet-clinic

K8s.Workload

Nombre de la carga de trabajo de Kubernetes en los clústeres de Amazon EKS y K8s.

Cadena alfanumérica con delimitadores básicos.

frontend

K8s.Node

Identidad del nodo de Kubernetes en los clústeres de Amazon EKS y K8s.

Nombre del nodo de K8s (por ejemplo, nombre de DNS de la instancia de Amazon EC2).

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

K8s.Pod

Identidad del pod de Kubernetes en los clústeres de Amazon EKS y K8s.

Identificador del pod de K8s.

frontend-1234abcd56-ef7890

EC2.AutoScalingGroup

Nombre del grupo de Amazon EC2 Auto Scaling.

Cadena alfanumérica con delimitadores básicos.

my-asg-name-1

EC2.InstanceId

Identidad de la instancia de Amazon EC2.

Identificador de la instancia de Amazon EC2.

i-1234abcd5678ef90

ECS.Cluster

Identidad del clúster de Amazon ECS.

Nombre del clúster de Amazon ECS.

MyCluster

ECS.Service

Identidad del servicio de Amazon ECS.

Nombre del servicio de Amazon ECS.

MyService

ECS.Task

Identidad de la tarea de Amazon ECS.

Identificador de la tarea de Amazon ECS.

task-123abc

Lambda.Function

Identidad de la función de Lambda.

Nombre de la función de Lambda.

MyFunction

Host

Nombre del host para todos los tipos de plataforma.

Formato del subdominio.

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

Detalles del recurso

Palabra clave Uso Dominio de valores Ejemplos

AWS.Resource.ARN

ARN del recurso de AWS.

Cadena alfanumérica con delimitadores básicos.

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

Detalles de la aplicación

Palabra clave Uso Dominio de valores Ejemplos

AWS.Application

Nombre de la aplicación en AppRegistry.

Cadena alfanumérica con delimitadores básicos.

PetClinicApp

AWS.Application.ARN

ARN de la aplicación en AppRegistry.

Cadena alfanumérica con delimitadores básicos.

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

Detalles del proveedor de telemetría

Palabra clave Uso Dominio de valores Ejemplos

Telemetry.SDK

La huella digital de la versión del SDK de OTEL para servicios instrumentados.

Cadena alfanumérica con delimitadores básicos.

opentelemetry,1.32.0-aws-SNAPSHOT,java,Auto

Telemetry.Agent

La huella digital del agente utilizado para recopilar y enviar datos de telemetría.

Cadena alfanumérica con delimitadores básicos.

CWAgent/1.300026.3, ADOTCollector/1.x

Telemetry.Source

Especifica el punto de aplicación en el que se recopiló la telemetría o qué se utilizó como origen de los datos de telemetría.

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

ClientSpan, JMX