

# Conector do Amazon Athena para o CloudWatch Metrics
<a name="connectors-cwmetrics"></a>

O conector das métricas do CloudWatch no Amazon Athena permite que o Amazon Athena consulte dados de métricas do CloudWatch com SQL.

Esse conector não usa o Glue Connections para centralizar as propriedades de configuração no Glue. A configuração da conexão é feita por meio do Lambda.

Para obter informações sobre a publicação de métricas de consulta do próprio Athena no CloudWatch, consulte [Usar o CloudWatch e o EventBridge para monitorar as consultas e controlar os custos](workgroups-control-limits.md).

## Pré-requisitos
<a name="connectors-cwmetrics-prerequisites"></a>
+ Implante o conector na sua Conta da AWS usando o console do Athena ou o AWS Serverless Application Repository. Para ter mais informações, consulte [Criar uma conexão de fonte de dados](connect-to-a-data-source.md) ou [Usar o AWS Serverless Application Repository para implantar um conector de fonte de dados](connect-data-source-serverless-app-repo.md).

## Parâmetros
<a name="connectors-cwmetrics-parameters"></a>

Use os parâmetros nesta seção para configurar o conector do CloudWatch Metrics.

### Conexões do Glue (recomendação)
<a name="connectors-cwmetrics-gc"></a>

Recomendamos que você configure um conector do CloudWatch Metrics usando um objeto de conexões do Glue. Para fazer isso, defina a variável de ambiente `glue_connection` do Lambda do conector do CloudWatch Metrics como o nome da conexão do Glue a ser usada.

**Propriedades das conexões do Glue**

Use o comando apresentado a seguir para obter o esquema de um objeto de conexão do Glue. Esse esquema contém todos os parâmetros que você pode usar para controlar a conexão.

```
aws glue describe-connection-type --connection-type CLOUDWATCHMETRICS
```

**Propriedades do ambiente do Lambda**
+ **glue\$1connection**: especifica o nome da conexão do Glue associada ao conector federado. 

**nota**  
Todos os conectores que usam conexões do Glue devem usar o AWS Secrets Manager para armazenar credenciais.
O conector do CloudWatch Metrics criado usando conexões do Glue não é compatível com o uso de um manipulador de multiplexação.
O conector do CloudWatch Metrics criado usando conexões do Glue é compatível apenas com o `ConnectionSchemaVersion` 2.

### Conexões legadas
<a name="connectors-cwmetrics-legacy"></a>
+ **spill\$1bucket**: especifica o bucket do Amazon S3 para dados que excedem os limites da função do Lambda.
+ **spill\$1prefix**: (opcional) assume como padrão uma subpasta no `spill_bucket` especificado chamado `athena-federation-spill`. Recomendamos que você configure um [ciclo de vida de armazenamento](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) do Amazon S3 neste local para excluir derramamentos anteriores a um número predeterminado de dias ou horas.
+ **spill\$1put\$1request\$1headers**: (opcional) um mapa codificado em JSON de cabeçalhos e valores de solicitações para a solicitação `putObject` do Amazon S3 usada para o derramamento (por exemplo, `{"x-amz-server-side-encryption" : "AES256"}`). Para outros cabeçalhos possíveis, consulte [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) na *Referência da API do Amazon Simple Storage Service*.
+ **kms\$1key\$1id**: (opcional) por padrão, todos os dados transmitidos para o Amazon S3 são criptografados usando o modo de criptografia autenticado AES-GCM e uma chave gerada aleatoriamente. Para que sua função do Lambda use chaves de criptografia mais fortes geradas pelo KMS, como `a7e63k4b-8loc-40db-a2a1-4d0en2cd8331`, é possível especificar um ID de chave do KMS.
+ **disable\$1spill\$1encryption**: (opcional) quando definido como `True`, desativa a criptografia do derramamento. É padronizado como `False`, para que os dados transmitidos para o S3 sejam criptografados usando o AES-GCM — usando uma chave gerada aleatoriamente ou o KMS para gerar chaves. Desativar a criptografia do derramamento pode melhorar a performance, especialmente se o local do derramamento usar [criptografia no lado do servidor](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html).

O conector também oferece suporte a [Controle de congestionamento AIMD](https://en.wikipedia.org/wiki/Additive_increase/multiplicative_decrease) para lidar com eventos de limitação do CloudWatch por meio da construção `ThrottlingInvoker` do [SDK do Amazon Athena Query Federation](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-federation-sdk). É possível ajustar o comportamento do controle de utilização padrão definindo qualquer uma das seguintes variáveis de ambiente opcionais:
+ **throttle\$1initial\$1delay\$1ms**: o atraso inicial da chamada aplicado após o primeiro evento de congestionamento. O padrão é de 10 milissegundos.
+ **throttle\$1max\$1delay\$1ms**: o atraso máximo entre as chamadas. É possível derivar o TPS dividindo-o em 1000 ms. O padrão é de 1000 milissegundos.
+ **throttle\$1decrease\$1factor**: o fator pelo qual o Athena reduz a taxa de chamadas. O padrão é de 0,5
+ **throttle\$1increase\$1ms**: a taxa na qual o Athena diminui o atraso da chamada. O padrão é de 10 milissegundos.

## Bancos de dados e tabelas
<a name="connectors-cwmetrics-databases-and-tables"></a>

O conector CloudWatch Metrics do Athena mapeia seus namespaces, dimensões, métricas e valores métricos em duas tabelas em um único esquema chamado `default`.

### A tabela de métricas
<a name="connectors-cwmetrics-the-metrics-table"></a>

A tabela `metrics` contém as métricas disponíveis conforme definido exclusivamente por uma combinação de namespace, conjunto e nome. A tabela `metrics` contém as colunas a seguir.
+ **namespace**: um `VARCHAR` contendo o namespace.
+ **metric\$1name**: um `VARCHAR` contendo o nome da métrica.
+ **dimensions**: uma `LIST` de objetos `STRUCT` compostos por `dim_name (VARCHAR)` e `dim_value (VARCHAR)`.
+ **statistic**: uma `LIST` de estatísticas `VARCH` (por exemplo, `p90`, `AVERAGE`, ...) disponíveis para a métrica.

### A tabela metric\$1samples
<a name="connectors-cwmetrics-the-metric_samples-table"></a>

A tabela `metric_samples` contém as amostras métricas disponíveis para cada métrica na tabela `metrics`. A tabela `metric_samples` contém as colunas a seguir.
+ **namespace**: um `VARCHAR` que contém o namespace.
+ **metric\$1name**: um `VARCHAR` que contém o nome da métrica.
+ **dimensions**: uma `LIST` de objetos `STRUCT` compostos por `dim_name (VARCHAR)` e `dim_value (VARCHAR)`.
+ **dim\$1name**: um campo `VARCHAR` de conveniência que você pode usar para filtrar facilmente por um único nome de dimensão.
+ **dim\$1value**: um campo `VARCHAR` de conveniência que você pode usar para filtrar facilmente por um único valor de dimensão.
+ **period**: um campo `INT` que representa o “período” da métrica em segundos (por exemplo, uma métrica de 60 segundos).
+ **timestamp**: um campo `BIGINT` que representa o tempo de época em segundos para o qual a amostra métrica se destina.
+ **value**: um `FLOAT8` campo que contém o valor da amostra.
+ **statistic**: um `VARCHAR` que contém o tipo estatístico da amostra (por exemplo, `AVERAGE` ou `p90`).

## Permissões obrigatórias
<a name="connectors-cwmetrics-required-permissions"></a>

Os detalhes completos sobre as políticas do IAM exigidas por esse conector podem ser encontrados na seção `Policies` do arquivo [athena-cloudwatch-metrics.yaml](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-cloudwatch-metrics/athena-cloudwatch-metrics.yaml). A lista a seguir resume as permissões necessárias.
+ **Acesso de gravação do Amazon S3**: o conector requer acesso de gravação a um local no Amazon S3 para mostrar resultados de grandes consultas.
+ **Athena GetQueryExecution**: o conector usa esta permissão para falhar rapidamente quando a consulta upstream do Athena é encerrada.
+ **CloudWatch Metrics ReadOnly** (Métricas do CloudWatch somente para leitura): o conector usa esta permissão para consultar seus dados de métricas.
+ **CloudWatch Logs Write**: o conector usa este acesso para gravar seus registros de diagnóstico.

## desempenho
<a name="connectors-cwmetrics-performance"></a>

O conector CloudWatch Metrics do Athena tenta otimizar as consultas em relação ao CloudWatch Metrics paralelizando as varreduras dos fluxos de log necessários para sua consulta. Para determinados filtros de período de tempo, métricas, namespaces e dimensões, a redução de predicados é realizada tanto na função do Lambda quanto no CloudWatch Logs.

## Informações de licença
<a name="connectors-cwmetrics-license-information"></a>

O projeto do conector CloudWatch Metrics do Amazon Athena é licenciado sob a [Licença Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.html).

## Recursos adicionais
<a name="connectors-cwmetrics-additional-resources"></a>

Para obter mais informações sobre esse conector, visite [o site correspondente](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-cloudwatch-metrics) em GitHub.com.