

# Cómo agregar información relacionada a la telemetría personalizada que se envía a CloudWatch
<a name="adding-your-own-related-telemetry"></a>

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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html) o [PutLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html)), 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](CloudWatch_Embedded_Metric_Format_Specification.md#entity-information-emf-format).

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.

## Identificación de la entidad con el objeto KeyAttributes
<a name="custom-related-telemetry-keyattributes"></a>

La propiedad `KeyAttributes` de los objetos Entity ([en CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Entity.html) o [en Registros de CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_Entity.html)) 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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) de CloudFormation. Por ejemplo, `AWS::DynamoDB::Table`.
+ `"Identifier": "<resource-id>"`: el identificador principal del recurso. Para obtener más información, consulte [primaryIdentifier](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) de 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`.

------

## Cómo proporcionar detalles adicionales sobre la entidad con el objeto Attributes
<a name="custom-related-telemetry-attributes"></a>

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` | 