Conector do Amazon Athena para o CloudWatch Metrics - Amazon Athena

Conector do Amazon Athena para o CloudWatch Metrics

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.

Pré-requisitos

Parâmetros

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

  • spill_bucket: especifica o bucket do Amazon S3 para dados que excedem os limites da função do Lambda.

  • spill_prefix: (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 do Amazon S3 neste local para excluir derramamentos anteriores a um número predeterminado de dias ou horas.

  • spill_put_request_headers: (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 na Referência da API do Amazon Simple Storage Service.

  • kms_key_id: (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_spill_encryption: (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.

O conector também oferece suporte a Controle de congestionamento AIMD para lidar com eventos de limitação do CloudWatch por meio da construção ThrottlingInvoker do SDK do Amazon Athena Query Federation. É possível ajustar o comportamento do controle de utilização padrão definindo qualquer uma das seguintes variáveis de ambiente opcionais:

  • throttle_initial_delay_ms: o atraso inicial da chamada aplicado após o primeiro evento de congestionamento. O padrão é de 10 milissegundos.

  • throttle_max_delay_ms: o atraso máximo entre as chamadas. É possível derivar o TPS dividindo-o em 1000 ms. O padrão é de 1000 milissegundos.

  • throttle_decrease_factor: o fator pelo qual o Athena reduz a taxa de chamadas. O padrão é de 0,5

  • throttle_increase_ms: a taxa na qual o Athena diminui o atraso da chamada. O padrão é de 10 milissegundos.

Bancos de dados e tabelas

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 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_name: 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_samples

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_name: 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_name: um campo VARCHAR de conveniência que você pode usar para filtrar facilmente por um único nome de dimensão.

  • dim_value: 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

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

Performance

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

O projeto do conector CloudWatch Metrics do Amazon Athena é licenciado sob a Licença Apache-2.0.

Recursos adicionais

Para obter mais informações sobre esse conector, visite o site correspondente em GitHub.com.