Ir para o conteúdo

Como faço para reduzir o número de logs que minha tarefa do AWS Glue gera?

4 minuto de leitura
0

Minha tarefa no AWS Glue gera muitos logs no Amazon CloudWatch. Quero reduzir o número de logs gerados.

Breve descrição

As tarefas de Extract/Transform/Load (ETL) do AWS Glue Spark geram muitos logs que é possível usar para monitorar falhas internas e diagnosticar tarefas com falha. Não é possível controlar o número de logs que as tarefas do AWS Glue geram em suas instâncias, mas sim ajustar o detalhamento dos logs.

Para fazer isso, use os seguintes métodos:

  • Ative a configuração padrão do filtro para registro em log contínuo.
  • Use o método de contexto setLogLevel do Spark.
  • Use um arquivo log4j.properties personalizado.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Ativar a configuração padrão do filtro para registro em log contínuo

Se você ativou o log contínuo na sua tarefa, ative o filtro Padrão para a opção de Filtragem de logs.

Para ativar esse filtro, use a AWS CLI para adicionar os seguintes parâmetros de tarefa:

'--enable-continuous-cloudwatch-log': 'true''--enable-continuous-log-filter': 'true'

Observação: o registro em log contínuo do AWS Glue está disponível somente no AWS Glue 4.0 e versões anteriores.

Usar o método de contexto setLogLevel do Spark

É possível usar o método setLogLevel de pyspark.context.SparkContext para definir o nível de registro em log da sua tarefa. Os níveis de log válidos incluem ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE e WARN. Para mais informações, consulte setLogLevel no site do Apache Spark.

Para importar o método de contexto do Spark e definir o nível de registro em log, adicione o seguinte código à sua tarefa do AWS Glue:

from pyspark.context import SparkContext
sc = SparkContext()
sc.setLogLevel("new-log-level")

Observação: substitua new-log-level pelo seu novo nível de registro em log. Esse código afeta o comportamento do log do driver, mas não os logs do executor.

Para mais informações, consulte Configuring logging (Como configurar o registro em log) no site do Apache Spark.

Usar um arquivo log4j.properties personalizado

O AWS Glue 3.0 usa o Log4j 1 para o comportamento de registro em log, e é possível personalizar esses comportamentos com o arquivo log4j.properties. O AWS Glue 4.0 usa o Log4j 2 para o comportamento de registro em log, e é possível personalizar esses comportamentos com o arquivo log4j2.properties. Para mais informações sobre o Log4j 2, consulte Configuration properties (Propriedades de configuração) no site do Apache Logging Services.

Observação: se você aplicar um arquivo de configuração log4j.properties ou log4j2.properties personalizado, o AWS Glue desativará o registro em log contínuo. Além disso, as propriedades personalizadas do Log4j estão disponíveis somente no AWS Glue 4.0 e versões anteriores.

É possível incluir suas preferências de registro em log no arquivo log4j2.properties. Em seguida, é possível fazer upload do arquivo no Amazon Simple Storage Service (Amazon S3) e use o arquivo na tarefa do AWS Glue.

Para usar um arquivo de configuração personalizado no AWS Glue 4.0, conclua as seguintes etapas:

  1. Crie um arquivo chamado log4j2.properties para definir o nível do registrador em log raiz como erro.
    Exemplo de arquivo log4j2.properties:

    rootLogger.level = error
    rootLogger.appenderRef.stdout.ref = STDOUT
    
    appender.console.type = Console
    appender.console.name = STDOUT
    appender.console.target = SYSTEM_ERR
    appender.console.layout.type = PatternLayout
    appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %p [%t] %c{2} (%F:%M(%L)): %m%n
  2. Faça o upload do arquivo log4j2.properties no Amazon S3 e copie o URI do S3 do arquivo.

  3. Na tarefa do AWS Glue, adicione os seguintes parâmetros:

    --extra-files, s3://[objectpath]/log4j2.properties

    Observação: substitua s3://[objectpath]/log4j.properties pelo URI do S3 que você usou na etapa anterior.

  4. Salve a tarefa do AWS Glue e execute-a.

  5. Verifique o fluxo de logs relacionado no grupo de logs /aws-glue/jobs/error.

Informações relacionadas

Monitoramento com Amazon CloudWatch

AWS OFICIALAtualizada há 10 meses