

# Creación y configuración de la supervisión de Información de aplicaciones de CloudWatch mediante las plantillas de CloudFormation
<a name="appinsights-cloudformation"></a>

Puede agregar el monitoreo de Información de aplicaciones, incluidas las métricas clave y la telemetría, a su aplicación, base de datos y servidor web, directamente desde las plantillas de AWS CloudFormation.

En esta sección encontrará un ejemplo de plantillas de CloudFormation en formatos JSON y YAML para ayudarlo a crear y configurar el monitoreo de Información de aplicaciones.

Para ver la referencia de recursos y propiedades de Información de aplicaciones en la *Guía del usuario de CloudFormation*, consulte [Referencia de tipos de recursos de Información de aplicaciones](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ApplicationInsights.html). 

**Topics**
+ [Creación de una aplicación de Información de aplicaciones para toda la pila de CloudFormation](#appinsights-cloudformation-apply-to-stack)
+ [Creación de una aplicación de Información de aplicaciones con configuraciones detalladas](#appinsights-cloudformation-apply-detailed)
+ [Creación de una aplicación de Información de aplicaciones con la configuración del componente en modo `CUSTOM`](#appinsights-cloudformation-custom)
+ [Creación de una aplicación de Información de aplicaciones con la configuración del componente en modo `DEFAULT`](#appinsights-cloudformation-default)
+ [Creación de una aplicación de Información de aplicaciones con la configuración del componente en modo `DEFAULT_WITH_OVERWRITE`](#appinsights-cloudformation-default-with-overwrite)

## Creación de una aplicación de Información de aplicaciones para toda la pila de CloudFormation
<a name="appinsights-cloudformation-apply-to-stack"></a>

Para aplicar la siguiente plantilla, cree recursos de AWS y uno o más grupos de recursos a partir de los cuales pueda crear aplicaciones de Información de aplicaciones para monitorear esos recursos. Para obtener más información, consulte [Introducción a AWS Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted.html).

Las dos primeras partes de la siguiente plantilla especifican un recurso y un grupo de recursos. La última parte de la plantilla crea una aplicación de Información de aplicaciones para el grupo de recursos, pero no configura la aplicación ni aplica monitoreo. Para obtener más información, consulte los detalles del comando [CreateApplication](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateApplication.html) en la *Referencia de la API de Información de aplicaciones de Amazon CloudWatch*.

**Plantilla en formato JSON**

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Test Resource Group stack",
    "Resources": {
        "EC2Instance": {
            "Type": "AWS::EC2::Instance",
            "Properties": {
                "ImageId" : "ami-abcd1234efgh5678i",
                "SecurityGroupIds" : ["sg-abcd1234"]
            }
        },
        ...
        "ResourceGroup": {
            "Type": "AWS::ResourceGroups::Group",
            "Properties": {
                "Name": "my_resource_group"
            }
        },
        "AppInsightsApp": {
            "Type": "AWS::ApplicationInsights::Application",
            "Properties": {
                "ResourceGroupName": "my_resource_group"
            },
            "DependsOn" : "ResourceGroup"
        }
    }
}
```

**Plantilla en formato YAML**

```
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Test Resource Group stack
Resources:
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-abcd1234efgh5678i
      SecurityGroupIds:
      - sg-abcd1234
  ...
  ResourceGroup:
    Type: AWS::ResourceGroups::Group
    Properties:
      Name: my_resource_group
  AppInsightsApp:
    Type: AWS::ApplicationInsights::Application
    Properties:
      ResourceGroupName: my_resource_group
    DependsOn: ResourceGroup
```

La siguiente sección de plantilla aplica la configuración de monitoreo predeterminada a la aplicación de Información de aplicaciones. Para obtener más información, consulte los detalles del comando [CreateApplication](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateApplication.html) en la *Referencia de la API de Información de aplicaciones de Amazon CloudWatch*.

Cuando `AutoConfigurationEnabled` se establece en `true`, todos los componentes de la aplicación se configuran con las configuraciones recomendadas de monitoreo para el nivel de aplicación `DEFAULT`. Para obtener más información acerca de estas configuraciones y niveles, consulte [DescribeComponentConfigurationRecommendation](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_DescribeComponentConfigurationRecommendation.html) y [UpdateComponentConfiguration](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_UpdateComponentConfiguration.html) en la *Referencia de la API de Información de aplicaciones de Amazon CloudWatch*. 

**Plantilla en formato JSON**

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Test Application Insights Application stack",
    "Resources": {
        "AppInsightsApp": {
            "Type": "AWS::ApplicationInsights::Application",
            "Properties": {
                "ResourceGroupName": "my_resource_group",
                "AutoConfigurationEnabled": true
            }
        }
    }
}
```

**Plantilla en formato YAML**

```
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Test Application Insights Application stack
Resources:
  AppInsightsApp:
    Type: AWS::ApplicationInsights::Application
    Properties:
      ResourceGroupName: my_resource_group
      AutoConfigurationEnabled: true
```

## Creación de una aplicación de Información de aplicaciones con configuraciones detalladas
<a name="appinsights-cloudformation-apply-detailed"></a>

En la siguiente plantilla se realizan las siguientes acciones:
+ Crea una aplicación de Información de aplicaciones con la notificación de Eventos de CloudWatch y Centro de operaciones habilitado. Para obtener más información, consulte los detalles del comando [CreateApplication](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateApplication.html) en la *Referencia de la API de Información de aplicaciones de Amazon CloudWatch*. 
+ Etiqueta la aplicación con dos etiquetas, una de las cuales no tiene valores de etiqueta. Para obtener más información, consulte [TagResource](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_TagResource.html) en la *Referencia de la API de Información de aplicaciones de Amazon CloudWatch*.
+ Crea dos componentes de grupo de instancias personalizado. Para obtener más información, consulte [CreateComponent](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateComponent.html) en la *Referencia de la API de Información de aplicaciones de Amazon CloudWatch*.
+ Crea dos conjuntos de patrones de registro. Para obtener más información, consulte [CreateLogPattern](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateLogPattern.html) en la *Referencia de la API de Información de aplicaciones de Amazon CloudWatch*.
+ Establece `AutoConfigurationEnabled` en `true`, que configura todos los componentes de la aplicación con la configuración de monitoreo recomendada para el nivel `DEFAULT`. Para obtener más información, consulte [DescribeComponentConfigurationRecommendation](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_DescribeComponentConfigurationRecommendation.html) en la *Referencia de la API de Información de aplicaciones de Amazon CloudWatch*.

**Plantilla en formato JSON **

```
{
    "Type": "AWS::ApplicationInsights::Application",
    "Properties": {
        "ResourceGroupName": "my_resource_group",
        "CWEMonitorEnabled": true,
        "OpsCenterEnabled": true,
        "OpsItemSNSTopicArn": "arn:aws:sns:us-east-1:123456789012:my_topic",
        "AutoConfigurationEnabled": true,
        "Tags": [
            {
                "Key": "key1",
                "Value": "value1"
            },
            {
                "Key": "key2",
                "Value": ""
            }
        ],
        "CustomComponents": [
            {
                "ComponentName": "test_component_1",
                "ResourceList": [
                    "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i"
                ]
            },
            {
                "ComponentName": "test_component_2",
                "ResourceList": [
                    "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i",
                    "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i"
                ]
            }
        ],
        "LogPatternSets": [
            {
                "PatternSetName": "pattern_set_1",
                "LogPatterns": [
                    {
                        "PatternName": "deadlock_pattern",
                        "Pattern": ".*\\sDeadlocked\\sSchedulers(([^\\w].*)|($))",
                        "Rank": 1
                    }
                ]    
            },
            {
                "PatternSetName": "pattern_set_2",
                "LogPatterns": [
                    {
                        "PatternName": "error_pattern",
                        "Pattern": ".*[\\s\\[]ERROR[\\s\\]].*",
                        "Rank": 1
                    },
                    {
                        "PatternName": "warning_pattern",
                        "Pattern": ".*[\\s\\[]WARN(ING)?[\\s\\]].*",
                        "Rank": 10
                    }
                ]
            }
        ]
    }
}
```

**Plantilla en formato YAML**

```
---
Type: AWS::ApplicationInsights::Application
Properties:
  ResourceGroupName: my_resource_group
  CWEMonitorEnabled: true
  OpsCenterEnabled: true
  OpsItemSNSTopicArn: arn:aws:sns:us-east-1:123456789012:my_topic
  AutoConfigurationEnabled: true
  Tags:
  - Key: key1
    Value: value1
  - Key: key2
    Value: ''
  CustomComponents:
  - ComponentName: test_component_1
    ResourceList:
    - arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i
  - ComponentName: test_component_2
    ResourceList:
    - arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i
    - arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i
  LogPatternSets:
  - PatternSetName: pattern_set_1
    LogPatterns:
    - PatternName: deadlock_pattern
      Pattern: ".*\\sDeadlocked\\sSchedulers(([^\\w].*)|($))"
      Rank: 1
  - PatternSetName: pattern_set_2
    LogPatterns:
    - PatternName: error_pattern
      Pattern: ".*[\\s\\[]ERROR[\\s\\]].*"
      Rank: 1
    - PatternName: warning_pattern
      Pattern: ".*[\\s\\[]WARN(ING)?[\\s\\]].*"
      Rank: 10
```

## Creación de una aplicación de Información de aplicaciones con la configuración del componente en modo `CUSTOM`
<a name="appinsights-cloudformation-custom"></a>

En la siguiente plantilla se realizan las siguientes acciones:
+ Crea una aplicación de Información de aplicaciones. Para obtener más información, consulte [CreateApplication](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateApplication.html) en la *Referencia de la API de Información de aplicaciones de Amazon CloudWatch*.
+ El componente `my_component` establece `ComponentConfigurationMode` en `CUSTOM`, lo que hace que este componente se configure como se especifica en `CustomComponentConfiguration`. Para obtener más información, consulte [UpdateComponentConfiguration](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_UpdateComponentConfiguration.html) en la *Referencia de la API de Información de aplicaciones de Amazon CloudWatch*.

**Plantilla en formato JSON**

```
{
    "Type": "AWS::ApplicationInsights::Application",
    "Properties": {
        "ResourceGroupName": "my_resource_group,
        "ComponentMonitoringSettings": [
            {
                "ComponentARN": "my_component",
                "Tier": "SQL_SERVER",
                "ComponentConfigurationMode": "CUSTOM",
                "CustomComponentConfiguration": {
                    "ConfigurationDetails": {
                        "AlarmMetrics": [
                            {
                                "AlarmMetricName": "StatusCheckFailed"
                            },
                            ...
                        ],
                        "Logs": [
                            {       
                                "LogGroupName": "my_log_group_1",
                                "LogPath": "C:\\LogFolder_1\\*",
                                "LogType": "DOT_NET_CORE",
                                "Encoding": "utf-8",
                                "PatternSet": "my_pattern_set_1"
                            },      
                            ...     
                        ],      
                        "WindowsEvents": [
                            {       
                                "LogGroupName": "my_windows_event_log_group_1",
                                "EventName": "Application",
                                "EventLevels": [
                                    "ERROR",
                                    "WARNING",
                                    ...     
                                ],       
                                "Encoding": "utf-8",
                                "PatternSet": "my_pattern_set_2"
                            },      
                            ...     
                        ],
                        "Alarms": [
                            {
                                "AlarmName": "my_alarm_name",
                                "Severity": "HIGH"
                            },
                            ...
                        ]
                    },
                    "SubComponentTypeConfigurations": [
                        {
                            "SubComponentType": "EC2_INSTANCE",
                            "SubComponentConfigurationDetails": {
                                "AlarmMetrics": [
                                    {
                                        "AlarmMetricName": "DiskReadOps"
                                    },
                                    ...
                                ],
                                "Logs": [
                                    {
                                        "LogGroupName": "my_log_group_2",
                                        "LogPath": "C:\\LogFolder_2\\*",
                                        "LogType": "IIS",
                                        "Encoding": "utf-8",
                                        "PatternSet": "my_pattern_set_3"
                                    },
                                    ...
                                ],
                                "processes" : [
                                    {
                                        "processName" : "my_process",
                                        "alarmMetrics" : [
                                    {
                                        "alarmMetricName" : "procstat cpu_usage",
                                        "monitor" : true
                                    }, {
                                        "alarmMetricName" : "procstat memory_rss",
                                        "monitor" : true
                                    }
                                ]
                            }
                        ],
                                "WindowsEvents": [
                                    {
                                        "LogGroupName": "my_windows_event_log_group_2",
                                        "EventName": "Application",
                                        "EventLevels": [
                                            "ERROR",
                                            "WARNING",
                                            ...
                                        ],
                                        "Encoding": "utf-8",
                                        "PatternSet": "my_pattern_set_4"
                                    },
                                    ...
                                ]
                            }
                        }   
                    ]
                }
            }
        ]
    }
}
```

**Plantilla en formato YAML**

```
---
Type: AWS::ApplicationInsights::Application
Properties:
  ResourceGroupName: my_resource_group
  ComponentMonitoringSettings:
  - ComponentARN: my_component
    Tier: SQL_SERVER
    ComponentConfigurationMode: CUSTOM
    CustomComponentConfiguration:
      ConfigurationDetails:
        AlarmMetrics:
        - AlarmMetricName: StatusCheckFailed
        ...
        Logs:
        - LogGroupName: my_log_group_1
          LogPath: C:\LogFolder_1\*
          LogType: DOT_NET_CORE
          Encoding: utf-8
          PatternSet: my_pattern_set_1
        ...
        WindowsEvents:
        - LogGroupName: my_windows_event_log_group_1
          EventName: Application
          EventLevels:
          - ERROR
          - WARNING
          ...
          Encoding: utf-8
          PatternSet: my_pattern_set_2
        ...
        Alarms:
        - AlarmName: my_alarm_name
          Severity: HIGH
        ...
      SubComponentTypeConfigurations:
      - SubComponentType: EC2_INSTANCE
        SubComponentConfigurationDetails:
          AlarmMetrics:
          - AlarmMetricName: DiskReadOps
          ...
          Logs:
          - LogGroupName: my_log_group_2
            LogPath: C:\LogFolder_2\*
            LogType: IIS
            Encoding: utf-8
            PatternSet: my_pattern_set_3
          ...
          Processes:
          - ProcessName: my_process
            AlarmMetrics:
            - AlarmMetricName: procstat cpu_usage
              ...
            ...
          WindowsEvents:
          - LogGroupName: my_windows_event_log_group_2
            EventName: Application
            EventLevels:
            - ERROR
            - WARNING
            ...
            Encoding: utf-8
            PatternSet: my_pattern_set_4
          ...
```

## Creación de una aplicación de Información de aplicaciones con la configuración del componente en modo `DEFAULT`
<a name="appinsights-cloudformation-default"></a>

En la siguiente plantilla se realizan las siguientes acciones:
+ Crea una aplicación de Información de aplicaciones. Para obtener más información, consulte [CreateApplication](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateApplication.html) en la *Referencia de la API de Información de aplicaciones de Amazon CloudWatch*.
+ Componente `my_component` establece `ComponentConfigurationMode` en `DEFAULT` y `Tier` en `SQL_SERVER`, lo que hace que este componente se configure con los ajustes de configuración que Información de aplicaciones recomienda para el nivel `SQL_Server`. Para obtener más información, consulte [DescribeComponentConfiguration](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_DescribeComponentConfiguration.html) y [UpdateComponentConfiguration](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_UpdateComponentConfiguration.html) en la *Referencia de la API de Información de aplicaciones de Amazon CloudWatch*.

**Plantilla en formato JSON**

```
{
    "Type": "AWS::ApplicationInsights::Application",
    "Properties": {
        "ResourceGroupName": "my_resource_group",
        "ComponentMonitoringSettings": [
            {
                "ComponentARN": "my_component",
                "Tier": "SQL_SERVER",
                "ComponentConfigurationMode": "DEFAULT"
            }
        ]
    }
}
```

**Plantilla en formato YAML**

```
---
Type: AWS::ApplicationInsights::Application
Properties:
  ResourceGroupName: my_resource_group
  ComponentMonitoringSettings:
  - ComponentARN: my_component
    Tier: SQL_SERVER
    ComponentConfigurationMode: DEFAULT
```

## Creación de una aplicación de Información de aplicaciones con la configuración del componente en modo `DEFAULT_WITH_OVERWRITE`
<a name="appinsights-cloudformation-default-with-overwrite"></a>

En la siguiente plantilla se realizan las siguientes acciones:
+ Crea una aplicación de Información de aplicaciones. Para obtener más información, consulte [CreateApplication](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateApplication.html) en la *Referencia de la API de Información de aplicaciones de Amazon CloudWatch*.
+ Componente `my_component` establece `ComponentConfigurationMode` en `DEFAULT_WITH_OVERWRITE` y `tier` en `DOT_NET_CORE`, lo que hace que este componente se configure con los ajustes de configuración que Información de aplicaciones recomienda para el nivel `DOT_NET_CORE`. Los ajustes de configuración sobrescritos se especifican en `DefaultOverwriteComponentConfiguration`: 
  + En el nivel de componente, la configuración de `AlarmMetrics` se sobrescribe.
  + En el nivel de subcomponente, para los subcomponentes de tipo `EC2_Instance`, los ajustes de `Logs` se sobrescriben.

  Para obtener más información, consulte [UpdateComponentConfiguration](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_UpdateComponentConfiguration.html) en la *Referencia de la API de Información de aplicaciones de Amazon CloudWatch*.

**Plantilla en formato JSON**

```
{
    "Type": "AWS::ApplicationInsights::Application",
    "Properties": {
        "ResourceGroupName": "my_resource_group",
        "ComponentMonitoringSettings": [
            {
                "ComponentName": "my_component",
                "Tier": "DOT_NET_CORE",
                "ComponentConfigurationMode": "DEFAULT_WITH_OVERWRITE",
                "DefaultOverwriteComponentConfiguration": {
                    "ConfigurationDetails": {
                        "AlarmMetrics": [
                            {
                                "AlarmMetricName": "StatusCheckFailed"
                            }
                        ]
                    },
                    "SubComponentTypeConfigurations": [
                        {
                            "SubComponentType": "EC2_INSTANCE",
                            "SubComponentConfigurationDetails": {
                                "Logs": [
                                    {
                                        "LogGroupName": "my_log_group",
                                        "LogPath": "C:\\LogFolder\\*",
                                        "LogType": "IIS",
                                        "Encoding": "utf-8",
                                        "PatternSet": "my_pattern_set"
                                    }
                                ]
                            }
                        }   
                    ] 
                } 
            }
        ]
    }
}
```

**Plantilla en formato YAML**

```
---
Type: AWS::ApplicationInsights::Application
Properties:
  ResourceGroupName: my_resource_group
  ComponentMonitoringSettings:
  - ComponentName: my_component
    Tier: DOT_NET_CORE
    ComponentConfigurationMode: DEFAULT_WITH_OVERWRITE
    DefaultOverwriteComponentConfiguration:
      ConfigurationDetails:
        AlarmMetrics:
        - AlarmMetricName: StatusCheckFailed
      SubComponentTypeConfigurations:
      - SubComponentType: EC2_INSTANCE
        SubComponentConfigurationDetails:
          Logs:
          - LogGroupName: my_log_group
            LogPath: C:\LogFolder\*
            LogType: IIS
            Encoding: utf-8
            PatternSet: my_pattern_set
```