

# Métricas personalizadas e métricas ampliadas que podem ser enviadas para o CloudWatch
<a name="CloudWatch-RUM-custom-and-extended-metrics"></a>

Por padrão, os monitores de aplicações do RUM enviam métricas para o CloudWatch. Essas métricas e dimensões padrão estão listadas em [Métricas do CloudWatch que você pode coletar com o CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-metrics.html).

Além disso, é possível configurar um monitor de aplicações para exportar métricas. O monitor de aplicações pode enviar métricas estendidas, métricas personalizadas ou ambas. Ele pode enviá-las para o CloudWatch.
+ **Métricas personalizadas**: métricas personalizadas são as métricas que você define. Com métricas personalizadas, é possível usar qualquer nome e namespace de métrica. Para derivar as métricas, é possível usar quaisquer eventos personalizados, eventos incorporados, atributos personalizados ou atributos padrão.

  Saiba como enviar métricas para o CloudWatch.
+ **Métricas ampliadas**: também é possível enviar qualquer métrica padrão do CloudWatch RUM para o CloudWatch com dimensões adicionais. Dessa forma, essas métricas podem oferecer uma visão mais minuciosa.

**Topics**
+ [Métricas personalizadas](#CloudWatch-RUM-custom-metrics)
+ [Métricas estendidas](#CloudWatch-RUM-vended-metrics)

## Métricas personalizadas
<a name="CloudWatch-RUM-custom-metrics"></a>

Para enviar métricas personalizadas, você deve usar as APIs da AWS ou a AWS CLI em vez do console. Para obter informações sobre como usar as APIs da AWS, consulte [PutRumMetricsDestination](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_PutRumMetricsDestination.html) e [BatchCreateRumMetricDefinitions](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_BatchCreateRumMetricDefinitions.html).

O número máximo de definições de métricas estendidas e métricas personalizadas que um destino pode conter é 2000. Para cada métrica personalizada ou métrica estendida que você envia a cada destino, cada combinação de nome de dimensão e valor de dimensão conta para esse limite. Não há cobranças por métricas personalizadas derivadas de qualquer tipo de eventos ou atributos do CloudWatch RUM.

O exemplo a seguir mostra como criar uma métrica personalizada derivada de um evento personalizado. Aqui está o exemplo de evento personalizado usado:

```
cwr('recordEvent', {
    type: 'my_custom_event', 
    data: {
        location: 'IAD', 
        current_url: 'amazonaws.com', 
        user_interaction: {
            interaction_1 : "click",
            interaction_2 : "scroll"
        }, 
        visit_count:10
    }
})
```

Com este evento personalizado, é possível criar uma métrica personalizada que contabilize o número de visitas ao URL `amazonaws.com` a partir de navegadores Chrome. A definição a seguir cria uma métrica chamada `AmazonVisitsCount` em sua conta, no namespace `RUM/CustomMetrics/PageVisits`.

```
{
    "AppMonitorName":"customer-appMonitor-name",
    "Destination":"CloudWatch",
    "MetricDefinitions":[
        {
            "Name":"AmazonVisitsCount",
            "Namespace":"PageVisit",
            "ValueKey":"event_details.visit_count",
            "UnitLabel":"Count",
            "DimensionKeys":{
                "event_details.current_url": "URL"
            },
            "EventPattern":"{\"metadata\":{\"browserName\":[\"Chrome\"]},\"event_type\":[\"my_custom_event\"],\"event_details\": {\"current_url\": [\"amazonaws.com\"]}}" 
        }
    ]
}
```

## Métricas estendidas
<a name="CloudWatch-RUM-vended-metrics"></a>

Se configurar métricas ampliadas, poderá enviar qualquer métrica padrão do CloudWatch RUM para o CloudWatch com dimensões adicionais para que as métricas ofereçam uma visão mais refinada.

Para obter mais informações sobre as métricas padrão do CloudWatch RUM, consulte [Métricas do CloudWatch que você pode coletar com o CloudWatch RUM](CloudWatch-RUM-metrics.md).

O número máximo de definições de métricas estendidas e métricas personalizadas que um destino pode conter é 2000. Para cada métrica estendida ou métrica personalizada que você envia a cada destino, cada combinação de nome de dimensão e valor de dimensão conta como uma métrica estendida para esse limite.

Quando você envia métricas estendidas para o CloudWatch, pode usar o console do CloudWatch RUM para criar alarmes do CloudWatch para essas métricas.

Não há cobranças por métricas estendidas criadas para as métricas padrão do CloudWatch RUM.

### Métricas ampliadas de aplicações Web
<a name="CloudWatch-RUM-web-extended-metrics"></a>

As seguintes dimensões são compatíveis com as métricas ampliadas de aplicação Web:
+ `BrowserName`

  Exemplo de valores de dimensão: `Chrome`, `Firefox`, `Chrome Headless`
+ `CountryCode` O formato ISO-3166, com códigos de duas letras, é usado.

  Exemplo de valores de dimensão: `US`, `JP`, `DE`
+ `DeviceType`

  Exemplo de valores de dimensão: `desktop`, `mobile`, `tablet`, `embedded`
+ `FileType`

  Exemplo de valores de dimensão: `Image`, `Stylesheet` 
+ `OSName`

  Exemplo de valores de dimensão: `Linux`, `Windows`, `iOS`, `Android`
+ `PageId`

### Métricas ampliadas de aplicações móveis
<a name="CloudWatch-RUM-mobile-extended-metrics"></a>

As seguintes dimensões são compatíveis com as métricas ampliadas de aplicação móvel:
+ `ScreenName`
  + Valor do atributo de nome de tela: `attributes.screen.name` da aplicação
  + Exemplos de valores: HomeScreen, SettingsView, ProfilePage
+ `DeviceModel`
  + Valor do atributo de modelo do dispositivo: `resource.attributes.device.model.name`
  + Exemplos de valores: iPhone14,3, SM-G998B
+ `OSVersion`
  + Valor do atributo de versão do sistema operacional: `resource.attributes.os.version`
  + Exemplos de valores: 16.0, 13.0

**nota**  
Métricas padrão atualmente compatíveis com aplicações móveis: `ScreenLoadTime`, `ScreenLoadCount`, `NetworkLatency`, `Http4xxCount`, `Http5xxCount`, `CrashCount`, `ANRCount`, `AppHangCount`, `ColdLaunchTime`, `WarmLaunchTime`, `SessionCount`, `SpanPayloadSize` e `LogPayloadSize`.

### Configurar métricas estendidas usando o console
<a name="CloudWatch-RUM-extended-metrics-console"></a>

Para usar o console para enviar métricas estendidas ao CloudWatch, use as etapas a seguir.

Para saber mais sobre o uso das APIs da AWS para enviar métricas ampliadas para o CloudWatch, consulte [PutRumMetricsDestination](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_PutRumMetricsDestination.html) e [BatchCreateRumMetricDefinitions](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_BatchCreateRumMetricDefinitions.html)..

**Para usar o console para configurar um monitor de aplicações e enviar métricas estendidas do RUM para o CloudWatch**

1. Abra o console do CloudWatch, em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, escolha **Application Signals** e, em seguida, **RUM**.

1. Escolha o nome do monitor de aplicações que enviará as métricas.

1. Escolha a guia **Configuration** (Configuração) e escolha **RUM extended metrics** (Métricas estendidas do RUM).

1. Escolha **Send metrics** (Enviar métricas).

1. Selecione um ou mais nomes de métricas para enviar com dimensões adicionais.

1. Selecione um ou mais fatores para usar como dimensões para essas métricas. À medida que você faz suas escolhas, o número de métricas estendidas que são criadas é exibido em **Number of extended metrics** (Número de métricas estendidas).

   Esse número é calculado multiplicando o número de nomes de métricas escolhidos pelo número de dimensões diferentes que você cria.

   1. Para enviar uma métrica com o ID da página como dimensão, escolha **Browse for page ID** (Procurar ID de página) e selecione os IDs de página a serem usados.

   1. Para enviar uma métrica com o tipo de dispositivo como dimensão, escolha **Desktop devices** (Dispositivos desktop) ou **Mobile and tablets** (Celulares e tablets).

   1. Para enviar uma métrica com o sistema operacional como dimensão, selecione um ou mais sistemas operacionais em **Operating system** (Sistema operacional).

   1. Para enviar uma métrica com o tipo de navegador como dimensão, selecione um ou mais navegadores em **Browsers** (Navegadores).

   1. Para enviar uma métrica com geolocalização como dimensão, selecione um ou mais locais em **Locations** (Locais).

      Somente os locais de onde esse monitor de aplicações relatou métricas aparecerão na lista para você escolher.

1. Quando você terminar de fazer suas seleções, escolha **Send metrics** (Enviar métricas).

1. (Opcional) Na lista **Extended metrics** (Métricas estendidas), para criar um alarme que monitore uma das métricas, escolha **Create alarm** (Criar alarme) na linha dessa métrica.

   Para obter informações gerais sobre alarmes do CloudWatch, consulte [Usar alarmes do Amazon CloudWatch](CloudWatch_Alarms.md). Para ver um tutorial sobre como configurar um alarme em uma métrica estendida do CloudWatch RUM, consulte [Tutorial: criar uma métrica estendida e definir um alarme para ela](#CloudWatch-RUM-extended-metrics-alarmtutorial).

**Parar de enviar métricas estendidas**

**Para usar o console para parar de enviar métricas estendidas**

1. Abra o console do CloudWatch, em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, escolha **Application Signals** e, em seguida, **RUM**.

1. Escolha o nome do monitor de aplicações que enviará as métricas.

1. Escolha a guia **Configuration** (Configuração) e escolha **RUM extended metrics** (Métricas estendidas do RUM).

1. Selecione uma ou mais combinações de nome de métrica e dimensão da métrica para parar de enviar. Em seguida, escolha **Actions** (Ações), **Delete** (Excluir).

### Tutorial: criar uma métrica estendida e definir um alarme para ela
<a name="CloudWatch-RUM-extended-metrics-alarmtutorial"></a>

Este tutorial demonstra como configurar uma métrica estendida para ser enviada ao CloudWatch e, em seguida, como definir um alarme para essa métrica. Neste tutorial, você cria uma métrica que rastreia erros de JavaScript no navegador Chrome.

**Para configurar essa métrica estendida e definir um alarme para ela**

1. Abra o console do CloudWatch, em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, escolha **Application Signals** e, em seguida, **RUM**.

1. Escolha o nome do monitor de aplicações que enviará a métrica.

1. Escolha a guia **Configuration** (Configuração) e escolha **RUM extended metrics** (Métricas estendidas do RUM).

1. Escolha **Send metrics** (Enviar métricas).

1. Selecione **JSErrorCount**.

1. Em **Browsers** (Navegadores), selecione **Chrome**.

   Essa combinação de **JSErrorCount** e **Chrome** enviará uma métrica estendida para o CloudWatch. A métrica conta os erros de JavaScript apenas para as sessões de usuário que usam o navegador Chrome. O nome da métrica será **JSErrorCount** e o nome da dimensão será **Browser** (Navegador).

1. Escolha **Send metrics** (Enviar métricas).

1. Na lista **Extended metrics** (Métricas estendidas), escolha **Create alarm** (Criar alarme) na linha que exibe **JSErrorCount** em **Name** (Nome) e **Chrome** em **BrowserName**.

1. Em **Specify metric and conditions** (Especificar métrica e condições), confirme se os campos **Metric name** (Nome da métrica) e **BrowserName** estão preenchidos com os valores corretos.

1. Em **Statistic** (Estatística), selecione a estatística que você deseja usar para o alarme. **Average** (Média) é uma boa escolha para esse tipo de métrica de contagem.

1. Em **Period (Período)**, selecione **5 minutes (5 minutos)**.

1. Em **Condições**, faça o seguinte:
   + Escolha **Static** (Estático).
   + Escolha **Greater** (Maior) para especificar que o alarme entre no estado ALARM (ALARME) quando o número de erros for maior do que o limite que você está prestes a especificar.
   + Em **than...** (de...), insira o número para o limite do alarme. O alarme entra no estado ALARM (ALARME) quando o número de erros em um período de 5 minutos excede esse número.

1. (Opcional) Por padrão, o alarme entra no estado ALARM (ALARME) assim que o número de erros excede o número limite que você define durante um período de 5 minutos. Opcionalmente, você pode alterar esse valor para que o alarme só entre no estado ALARM (ALARME) se esse número for excedido por um período maior que 5 minutos.

   Para fazer isso, escolha **Additional configuration**(Configuração adicional) e, em **Datapoints to alarm** (Pontos de dados para alarme), especifique quantos períodos de 5 minutos precisam ter o número de erros acima do limite para disparar o alarme. Por exemplo, você pode selecionar 2 de 2 para que o alarme só seja disparado quando dois períodos consecutivos de 5 minutos ficarem acima do limite, ou 2 de 3 para que o alarme seja disparado se dois dos três períodos consecutivos de 5 minutos ficarem acima do limite. 

   Para obter mais informações sobre esse tipo de avaliação de alarme, consulte [Avaliação de alarme](alarm-evaluation.md).

1. Escolha **Próximo**.

1. Em **Configure actions** (Configurar ações), especifique o que deve acontecer quando o alarme entrar em estado de alarme. Para receber uma notificação com o Amazon SNS, faça o seguinte:
   + Escolha **Adicionar notificação**.
   + Escolha **Em alarme**.
   + Selecione um tópico existente do SNS ou crie um novo. Se você criar um novo, especifique um nome para o tópico e adicione pelo menos um endereço de e-mail a ele.

1. Escolha **Próximo**.

1. Insira um nome e uma descrição opcional para o alarme e escolha **Next** (Avançar).

1. Revise os detalhes e escolha **Create alarm** (Criar alarme).