Anteriormente, o Amazon Managed Service for Apache Flink (Amazon MSF) era conhecido como Amazon Kinesis Data Analytics for Apache Flink.
Configure o registro em log do aplicativo no Managed Service for Apache Flink
Ao adicionar uma opção de registro em log do Amazon CloudWatch Logs ao seu aplicativo Managed Service for Apache Flink, você pode monitorar eventos do aplicativo ou problemas de configuração.
Este tópico descreve como configurar seu aplicativo para gravar eventos do aplicativo em um fluxo do CloudWatch Logs. Uma opção de registro em log do CloudWatch é uma coleção de configurações e permissões que seu aplicativo usa para configurar a forma como grava eventos de aplicativo no CloudWatch Logs. Você pode adicionar e configurar uma opção de registro em log do CloudWatch usando o Console de gerenciamento da AWS ou AWS Command Line Interface (AWS CLI).
Observe a seguir como adicionar uma opção de registro em log do CloudWatch ao seu aplicativo:
-
Quando você adiciona uma opção de registro em log do CloudWatch usando o console, o Managed Service for Apache Flink cria o grupo de logs e o fluxo de logs do CloudWatch para você e adiciona as permissões que seu aplicativo precisa para gravar no fluxo de logs.
-
Ao adicionar uma opção de registro em log do CloudWatch usando a API, você também deve criar o grupo de logs e o fluxo de logs do aplicativo e adicionar as permissões que seu aplicativo precisa para gravar no fluxo de logs.
Configure o registro em log do CloudWatch usando o console
Quando você ativa o registro em log do CloudWatch para seu aplicativo no console, um grupo de logs e um fluxo de logs do CloudWatch são criados para você. Além disso, a política de permissões do seu aplicativo é atualizada com permissões para gravar no fluxo.
O Managed Service for Apache Flink cria um grupo de logs chamado usando-se a convenção a seguir, em que ApplicationName é o nome do seu aplicativo.
/aws/kinesis-analytics/ApplicationName
O Managed Service for Apache Flink cria um fluxo de logs no novo grupo de logs com o nome a seguir.
kinesis-analytics-log-stream
Você define o nível da métrica de monitoramento do aplicativo e o nível do log de monitoramento usando a seção Monitoring log level (Nível do log de monitoramento) da página Configure application (Configurar aplicativo). Para obter informações sobre os níveis de log do aplicativo, consulte Controle os níveis de monitoramento do aplicativo.
Configure o registro em log do CloudWatch usando a CLI
Para adicionar uma opção de registro em log do CloudWatch usando o AWS CLI, finalize o seguinte:
-
Crie um grupo de logs e um fluxo de logs do CloudWatch
-
Adicione uma opção de registro em log ao criar um aplicativo usando a ação CreateApplication ou adicione uma opção de registro em log a um aplicativo existente usando a ação AddApplicationCloudWatchLoggingOption.
-
Adicione permissões à política do seu aplicativo para gravar nos logs.
Crie um grupo de logs e um fluxo de logs do CloudWatch
Você cria grupos e fluxos de logs do CloudWatch usando o console ou a API do CloudWatch Logs. Para obter mais informações sobre um grupo de logs ou fluxo de logs do CloudWatch, consulte Trabalhando com grupos de logs e fluxos de log.
Trabalhe com as opções de registro em log do aplicativo no CloudWatch
Use as ações de API a seguir para adicionar uma opção de log do CloudWatch a um aplicativo novo ou existente ou alterar uma opção de log de um aplicativo existente. Para obter informações sobre como usar um arquivo JSON como entrada de uma ação da API, consulte Exemplo de código de API para o Managed Service for Apache Flink.
Adicione uma opção de log do CloudWatch ao criar um aplicativo
O exemplo a seguir demonstra como usar a ação CreateApplication para adicionar uma opção de log do CloudWatch durante a criação de um aplicativo. No exemplo, substitua o Amazon Resource Name (ARN) of the CloudWatch Log stream to add to the new application (nome do recurso da Amazon [ARN] do fluxo do CloudWatch Log para adicionar ao novo aplicativo) com suas próprias informações. Para obter mais informações sobre a ação, consulte CreateApplication.
{ "ApplicationName": "test", "ApplicationDescription": "test-application-description", "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation":{ "BucketARN": "arn:aws:s3:::amzn-s3-demo-bucket", "FileKey": "myflink.jar" } }, "CodeContentType": "ZIPFILE" } }, "CloudWatchLoggingOptions": [{ "LogStreamARN": "<Amazon Resource Name (ARN) of the CloudWatch log stream to add to the new application>" }] }
Adicione uma opção de log do CloudWatch a um aplicativo existente
O exemplo a seguir demonstra como usar a ação AddApplicationCloudWatchLoggingOption para adicionar uma opção de log do CloudWatch a um aplicativo existente. No exemplo, substitua cada espaço reservado para entrada do usuário por suas próprias informações. Para obter mais informações sobre a ação, consulte AddApplicationCloudWatchLoggingOption.
{ "ApplicationName": "<Name of the application to add the log option to>", "CloudWatchLoggingOption": { "LogStreamARN": "<ARN of the log stream to add to the application>" }, "CurrentApplicationVersionId":<Version of the application to add the log to>}
Atualize uma opção de log existente do CloudWatch
O exemplo a seguir demonstra como usar a ação UpdateApplication para modificar uma opção de log do CloudWatch existente. No exemplo, substitua cada espaço reservado para entrada do usuário por suas próprias informações. Para obter mais informações sobre a ação, consulte UpdateApplication.
{ "ApplicationName": "<Name of the application to update the log option for>", "CloudWatchLoggingOptionUpdates": [ { "CloudWatchLoggingOptionId": "<ID of the logging option to modify>", "LogStreamARNUpdate": "<ARN of the new log stream to use>" } ], "CurrentApplicationVersionId":<ID of the application version to modify>}
Exclua uma opção de log do CloudWatch de um aplicativo
O exemplo a seguir demonstra como usar a ação DeleteApplicationCloudWatchLoggingOption para excluir uma opção de log do CloudWatch existente. No exemplo, substitua cada espaço reservado para entrada do usuário por suas próprias informações. Para obter mais informações sobre a ação, consulte DeleteApplicationCloudWatchLoggingOption.
{ "ApplicationName": "<Name of application to delete log option from>", "CloudWatchLoggingOptionId": "<ID of the application log option to delete>", "CurrentApplicationVersionId":<Version of the application to delete the log option from>}
Defina o nível de registro em log do aplicativo
Para definir o nível de registro em log do aplicativo, use o parâmetro MonitoringConfiguration da ação CreateApplication ou o parâmetro MonitoringConfigurationUpdate da ação UpdateApplication.
Para obter informações sobre os níveis de log do aplicativo, consulte Controle os níveis de monitoramento do aplicativo.
Defina o nível de registro em log do aplicativo ao criar um aplicativo
O exemplo de solicitação a seguir para a ação CreateApplication define o nível de log do aplicativo como INFO.
{ "ApplicationName": "MyApplication", "ApplicationDescription": "My Application Description", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::amzn-s3-demo-bucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "CodeContentType":"ZIPFILE" }, "FlinkApplicationConfiguration": "MonitoringConfiguration": { "ConfigurationType": "CUSTOM", "LogLevel": "INFO" } }, "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::123456789123:role/myrole" }
Atualize o nível de registro em log do aplicativo
O exemplo de solicitação a seguir para a ação UpdateApplication define o nível de log do aplicativo como INFO.
{ "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "MonitoringConfigurationUpdate": { "ConfigurationTypeUpdate": "CUSTOM", "LogLevelUpdate": "INFO" } } } }
Adicione permissões para gravar no fluxo de logs do CloudWatch
O Managed Service for Apache Flink precisa de permissões para gravar erros de configuração incorreta no CloudWatch. Você pode adicionar essas permissões ao perfil do (IAM) AWS Identity and Access Management que o Managed Service for Apache Flink assumir.
Para obter mais informações sobre como usar um perfil do IAM para o Managed Service for Apache Flink, consulte Gerenciamento de identidade e acesso para o Amazon Managed Service for Apache Flink.
Política de confiança
Para conceder permissões ao Managed Service for Apache Flink para assumir o perfil do IAM, anexe a política de confiança a seguir ao perfil de execução de serviço.
Política de permissões
Para conceder permissões a um aplicativo para gravar eventos de log no CloudWatch a partir de um recurso do Managed Service for Apache Flink, use a política de permissões do IAM a seguir. Forneça os nomes do recurso da Amazon (ARN) corretos para seu grupo e seu fluxo de logs.
Controle os níveis de monitoramento do aplicativo
Você controla a geração de mensagens de log do aplicativo usando o Nível de métricas de monitoramento e o Nível de registro em log de monitoramento do aplicativo.
O nível das métricas de monitoramento do aplicativo controla a granularidade das mensagens de log. Os níveis de métricas de monitoramento são definidos da seguinte forma:
-
Aplicativo: as métricas têm como escopo o aplicativo todo.
-
Tarefa: as métricas têm como escopo cada tarefa. Para obter mais informações sobre as tarefas, consulte Implemente a escalabilidade de aplicativos no Managed Service for Apache Flink.
-
Operador: as métricas têm como escopo cada operador. Para obter mais informações sobre os operadores, consulte Transformar dados usando operadores no Managed Service for Apache Flink com a API DataStream.
-
Paralelismo: as métricas têm como escopo o paralelismo de aplicativos. Você só pode definir esse nível de métrica usando o parâmetro MonitoringConfigurationUpdate da API UpdateApplication. Você não pode definir esse nível de métricas usando o console. Para obter mais informações sobre paralelismo, consulte Implemente a escalabilidade de aplicativos no Managed Service for Apache Flink.
O nível do registro em log de monitoramento do aplicativo controla a verbosidade do log do aplicativo. Os níveis do registro em log de monitoramento são definidos da seguinte forma:
-
Erro possíveis eventos catastróficos do aplicativo.
-
Alerta: situações potencialmente prejudiciais do aplicativo.
-
Info: eventos de falha informativos e transitórios do aplicativo. Recomendamos usar esse nível de log.
-
Depuração: eventos informativos detalhados que são mais úteis para depurar um aplicativo. Observação: use esse nível somente para fins de depuração temporária.
Aplique as práticas recomendadas de registro em log
Recomendamos que seu aplicativo use o nível Info de registro em log. Recomendamos esse nível para garantir que você veja os erros do Apache Flink, que são registrados em log no nível Info e não no nível Error.
Recomendamos que você use o nível de Debug apenas temporariamente ao investigar problemas do aplicativo. Volte para o nível Info quando o problema for resolvido. Usar o nível Debug de registro em log afetará significativamente o desempenho do seu aplicativo.
O registro em log excessivo também pode afetar significativamente o desempenho do aplicativo. Recomendamos que você não grave log para cada registro processado, por exemplo. O registro excessivo pode causar gargalos graves no processamento de dados e causar contrapressão na leitura de dados das fontes.
Realize a solução de problemas do registro em log
Se os registros do aplicativo não estiverem sendo gravados no fluxo de logs, verifique o seguinte:
-
Se o perfil e as políticas do IAM do seu aplicativo estão corretos. Se a política do seu aplicativo precisa das seguintes permissões para acessar seu fluxo de logs:
logs:PutLogEventslogs:DescribeLogGroupslogs:DescribeLogStreams
Para obter mais informações, consulte Adicione permissões para gravar no fluxo de logs do CloudWatch.
-
Verifique se o seu aplicativo está sendo executado. Para verificar o status do seu aplicativo, visualize a página do seu aplicativo no console ou use as ações DescribeApplication ou ListApplications.
-
Monitore as métricas do CloudWatch, como
downtime, para diagnosticar outros problemas do aplicativo. Para obter mais informações sobre as métricas de leitura do CloudWatch, consulte Métricas e dimensões no Managed Service for Apache Flink.
Use o CloudWatch Logs Insights
Depois de habilitar o registro em log do CloudWatch em seu aplicativo, você pode usar o CloudWatch Logs Insights para analisar os logs do seu aplicativo. Para obter mais informações, consulte Analise logs com o CloudWatch Logs Insights.