A AWS anunciou recentemente o acompanhamento reforçado para instâncias do Amazon RDS executando MySQL, MariaDB e Aurora. O acompanhamento reforçado inclui mais de 50 novos CPUs, memória, sistema de arquivos e métricas de E/S de disco que podem ser obtidas em uma base por instância com frequência de uma vez por segundo.
AWS e Datadog
A AWS acompanhou de perto o trabalho da Datadog para ajudar os clientes a enviar novos dados de alta resolução para a Datadog para monitoramento. A Datadog é uma plataforma de monitoramento de infraestrutura muito popular entre os clientes da AWS, você pode visualizar as tendências históricas com granularidade completa e também visualizar datas e criar alertas ao vivo a partir de qualquer parte da sua pilha.
Com alguns minutos de trabalho suas métricas avançadas do RDS começarão imediatamente a preencher um dashboard pré-construído e personalizável na Datadog:
Conecte o RDS e a Datadog
O primeiro passo é enviar as métricas do RDS avançadas para o CloudWatch Logs. Você pode ativar as métricas durante a criação da instância, ou em uma instância RDS existente selecionando-o no console do RDS e escolhendo Instance Options → Modify:
Defina a granularidade entre 1-60 segundos; a cada 15 segundos é muitas vezes uma boa escolha. Uma vez ativado, métricas avançadas serão enviadas para o CloudWatch Logs.
O segundo passo é enviar os dados do CloudWatch Log para a Datadog. Comece pela criação de uma função Lambda para processar os registros e enviar os resultados:
- Crie uma atribuição para a função Lambda. Crie um nome como lambda-datadog-enhanced-rds-collector e selecione AWS Lambda como o tipo de atribuição.
- A partir da guia Encryption Key no IAM Management Console, crie uma nova chave de criptografia. Digite um Alias para a chave como lambda-datadog-key. Na próxima página, adicione os administradores adequados para a chave. Em seguida, você será solicitado para adicionar usuários à chave. Adicionar pelo menos dois: você mesmo (de modo que você possa criptografar a chave de API do Datadog pela AWS CLI na próxima etapa), e a atribuição criada acima, por exemplo, lambda-datadog-enhanced-rds-collector (para que ela possa desencriptar a chave API e submeter as métricas para a Datadog). Conclua a criação da chave.
- Criptografe o token usando a AWS Command Line Interface (CLI), fornecendo o Alias da sua chave recém-criada (por exemplo, lambda-datadog-key) assim como suas chaves do Datadog, disponíveis aqui. Use o KMS para criptografar sua chave, dessa forma:
$ aws kms encrypt --key-id alias/ALIAS_KEY_NAME --plaintext '{"api_key":"DATADOG_API_KEY", "app_key":"DATADOG_APP_KEY"}'
Salve a saída deste comando; você vai precisar dela para a próxima etapa.
- No Lambda Management Console, crie uma nova função Lambda. Filtre os modelos pelo datadog, e selecione o modelo datadog-process-rds-metrics.
- Escolha RDSOSMetrics na lista suspensa Log Group, digite o Nome do filtro de sua escolha em Filter Name e vá para a página seguinte. Se você ainda não tiver ativado o acompanhamento reforçado, você deve fazê-lo antes para que o RDSOSMetrics seja apresentado como uma opção (consulte as instruções Connect RDS and Datadog acima):
- Dê à sua função um nome como send-enhanced-rds-to-datadog. Na área de código de função do Lambda, substitua a string KMS_ENCRYPTED_KEYS com a parte de texto cifrado da saída do comando na CLI acima.
- Em Lambda function handler and role, escolha a função que criou no passo 2, por exemplo, lambda-datadog-enhanced-rds-collector. Vá para a página seguinte, selecione o botão Enable Now, e criar a sua função.
E é isso
Depois de ativar o RDS no quadro de integração entre a AWS e o Datadog, o Datadog começará imediatamente a exibir suas métricas avançadas do RDS. Suas instâncias RDS serão individualmente identificáveis no Datadog por meio de tags automaticamente criadas na forma dbinstanceidentifier:YOUR_DB_INSTANCE_NAME, bem como quaisquer marcações incluídas através do console RDS.
Você pode clonar o dashboard pré-construído e personalizá-lo como quiser: adicionar métricas RDS que não são exibidas por padrão, ou começar a correlacionar RDS métricas com o desempenho do resto da sua pilha.