

# Implementación de AWS Distro para OpenTelemetry a fin de recopilar métricas de nivel de instancia EC2 en clústeres de Amazon ECS
<a name="deploy-container-insights-ECS-OTEL"></a>

Siga los pasos de esta sección para usar AWS Distro para OpenTelemetry a fin de recopilar métricas de nivel de instancia EC2 en un clúster de Amazon ECS. Para obtener más información acerca de AWS Distro para OpenTelemetry, consulte [AWS Distro para OpenTelemetry](https://aws.amazon.com/otel/).

En estos pasos se presupone que ya tiene un clúster que ejecuta Amazon ECS. Este clúster debe implementarse con el tipo de lanzamiento EC2. Para obtener más información acerca del uso de AWS Distro para OpenTelemetry con Amazon ECS y acerca de la configuración de un clúster de Amazon ECS para este fin, consulte [Configuración del recopilador de AWS Distro para OpenTelemetry en las métricas de nivel de instancia EC2 de Amazon Elastic Container Service para ECS EC2](https://aws-otel.github.io/docs/setup/ecs#3-setup-the-aws-otel-collector-for-ecs-ec2-instance-metrics). 

**Topics**
+ [Configuración rápida mediante CloudFormation](#container-insights-ECS-OTEL-quicksetup)
+ [Configuración manual y personalizada](#container-insights-ECS-OTEL-custom)

## Configuración rápida mediante CloudFormation
<a name="container-insights-ECS-OTEL-quicksetup"></a>

Descargue el archivo de plantilla de CloudFormation para instalar el recopilador AWS Distro para OpenTelemetry para Amazon ECS en EC2. Ejecute el siguiente comando curl.

```
curl -O https://raw.githubusercontent.com/aws-observability/aws-otel-collector/main/deployment-template/ecs/aws-otel-ec2-instance-metrics-daemon-deployment-cfn.yaml
```

Después de descargar el archivo de plantilla, ábralo y reemplace *PATH\$1TO\$1CloudFormation\$1TEMPLATE* con la ruta donde guardó el archivo de plantilla. A continuación, exporte los siguientes parámetros y ejecute el comando CloudFormation, tal y como se muestra en el siguiente comando.
+ **Cluster\$1Name**: el nombre del clúster de Amazon ECS
+ **AWS\$1Region**: la Región a la que se enviarán los datos
+ **PATH\$1TO\$1CloudFormation\$1TEMPLATE**: la ruta en la que guardó el archivo de plantilla de CloudFormation.
+ **comando**: para habilitar el recopilador de AWS Distro para OpenTelemetry para que recopile las métricas de nivel de instancia para Amazon ECS en Amazon EC2, debe especificar `--config=/etc/ecs/otel-instance-metrics-config.yaml` para este parámetro.

```
ClusterName=Cluster_Name
Region=AWS_Region
command=--config=/etc/ecs/otel-instance-metrics-config.yaml
aws cloudformation create-stack --stack-name AOCECS-${ClusterName}-${Region} \
--template-body file://PATH_TO_CloudFormation_TEMPLATE \
--parameters ParameterKey=ClusterName,ParameterValue=${ClusterName} \
ParameterKey=CreateIAMRoles,ParameterValue=True \
ParameterKey=command,ParameterValue=${command} \
--capabilities CAPABILITY_NAMED_IAM \
--region ${Region}
```

Después de ejecutar este comando, utilice la consola de Amazon ECS para ver si la tarea se está ejecutando.

### Solución de problemas de la configuración rápida
<a name="container-insights-ECS-OTEL-quicksetup-troubleshooting"></a>

Para comprobar el estado de la pila de CloudFormation, escriba el siguiente comando.

```
ClusterName=cluster-name
Region=cluster-region
aws cloudformation describe-stack --stack-name AOCECS-$ClusterName-$Region --region $Region
```

Si ve que el valor de `StackStatus` es distinto de `CREATE_COMPLETE` o `CREATE_IN_PROGRESS`, verifique los eventos de pila para encontrar el error. Escriba el siguiente comando.

```
ClusterName=cluster-name
Region=cluster-region
aws cloudformation describe-stack-events --stack-name AOCECS-$ClusterName-$Region --region $Region
```

Para verificar el estado del servicio del daemon `AOCECS`, ingrese el siguiente comando. En la salida, debería ver que el `runningCount` es igual al `desiredCount` en la sección de implementación. Si no es igual, verifique la sección de errores en la salida.

```
ClusterName=cluster-name
Region=cluster-region
aws ecs describe-services --services AOCECS-daemon-service --cluster $ClusterName --region $Region
```

También puede utilizar la consola de CloudWatch Logs para verificar el registro del agente. Busque el grupo de registro **/aws/ecs/containerinsights/\$1ClusterName\$1/performance**.

## Configuración manual y personalizada
<a name="container-insights-ECS-OTEL-custom"></a>

Siga los pasos de esta sección para implementar manualmente AWS Distro para OpenTelemetry a fin de recopilar métricas de nivel de instancia de los clústeres de Amazon ECS alojados en instancias de Amazon EC2.

### Paso 1: Políticas y roles necesarios
<a name="container-insights-ECS-OTEL-custom-iam"></a>

Se requieren dos roles de IAM. Debe crearlos si aún no existen. Para obtener más información sobre los roles, consulte [Create IAM policy](https://aws-otel.github.io/docs/setup/ecs/create-iam-policy) (Crear una política de IAM) y [Create IAM role](https://aws-otel.github.io/docs/setup/ecs/create-iam-role) (Crear un rol de IAM).

### Paso 2: Cree una definición de tarea
<a name="container-insights-ECS-OTEL-custom-task"></a>

Cree una definición de tarea y úsela para lanzar AWS Distro para OpenTelemetry como servicio del daemon.

Si desea utilizar la plantilla de definición de tareas para la creación de uno de esos recursos, siga las instrucciones que aparecen en [Crear una definición de tarea de EC2 de ECS para una instancia de EC2 con el recopilador de AWS OTel](https://aws-otel.github.io/docs/setup/ecs/task-definition-for-ecs-ec2-instance).

Si desea utilizar la consola de Amazon ECS para crear la definición de tarea, siga las instrucciones que aparecen en [Instalar el recopilador de AWS OTel mediante la creación de una definición de tarea a través de la consola de AWS para métricas de instancias de EC2 de Amazon ECS](https://aws-otel.github.io/docs/setup/ecs/create-task-definition-instance-console).

### Paso 3: Lance el servicio del daemon
<a name="container-insights-ECS-OTEL-custom-launch"></a>

Para lanzar AWS Distro para OpenTelemetry como un servicio daemon, siga las instrucciones que se indican en [Ejecutar la tarea en Amazon Elastic Container Service (Amazon ECS) con el servicio del daemon](https://aws-otel.github.io/docs/setup/ecs/run-daemon-service).

### (Opcional) Configuración avanzada
<a name="container-insights-ECS-OTEL-custom-advancdeconfig"></a>

Opcionalmente, puede utilizar SSM para especificar otras opciones de configuración para AWS Distro para OpenTelemetry en los clústeres de Amazon ECS alojados en instancias de Amazon EC2. Para obtener más información sobre la creación de un archivo de configuración, consulte [Custom OpenTelemetry Configuration](https://aws-otel.github.io/docs/setup/ecs#5-custom-opentelemetry-configuration) (Configuración personalizada de OpenTelemetry). Para obtener más información acerca de las opciones que pueden usarse en el archivo de configuración, consulte [Receptor de Información de contenedores de AWS](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/awscontainerinsightreceiver/README.md).