Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Investigando a saúde do seu sistema através de logs
Slide 2
Slide 2 text
Raphael de Almeida
Slide 3
Slide 3 text
"Qualquer coisa que possa dar errado, dará no pior momento possível" Edward A. Murphy
Slide 4
Slide 4 text
Quanto mais tempo um sistema fica inconsistente, pior são as consequências
Slide 5
Slide 5 text
Percepção de baixa confiabilidade
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
Inconsistência de dados
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
Exposição de vulnerabilidades
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
O que fazer quando acontece um erro?
Slide 12
Slide 12 text
“Vamos reproduzir o erro em dev”
Slide 13
Slide 13 text
Dev e Prod com configuração semelhante
Slide 14
Slide 14 text
Bateria de testes OK
Slide 15
Slide 15 text
Na minha máquina funciona!
Slide 16
Slide 16 text
O que falta é o contexto
Slide 17
Slide 17 text
Log
Slide 18
Slide 18 text
Log é como um diário de acontecimentos
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
Características
Slide 21
Slide 21 text
Mensagem clara
Slide 22
Slide 22 text
Aprender a escrever uma boa mensagem de erro leva tempo, aprenda com quem está acertando
Slide 23
Slide 23 text
Banco de dados utilizam códigos de erro para facilitar a pesquisa de soluções
Slide 24
Slide 24 text
Erros de PHP
Slide 25
Slide 25 text
Erros de Frameworks contém muita informação
Slide 26
Slide 26 text
Códigos de erro HTTP geralmente são ambíguos
Slide 27
Slide 27 text
Manter o contexto
Slide 28
Slide 28 text
Quando e onde aconteceu?
Slide 29
Slide 29 text
Ambiente e Nome do host
Slide 30
Slide 30 text
Usuário logado Primary Key Stacktrace Arquivo e linha HTTP Request
Slide 31
Slide 31 text
Fácil pesquisa e agrupamento
Slide 32
Slide 32 text
Níveis de criticidade RFC 5424 - The Syslog Protocol
Slide 33
Slide 33 text
Debug Mensagem para ajudar na depuração
Slide 34
Slide 34 text
Info Eventos comuns
Slide 35
Slide 35 text
Notice Eventos comuns, porém com certa relevância
Slide 36
Slide 36 text
Warning Eventos que merecem uma certa atenção
Slide 37
Slide 37 text
Error Erros em tempo de execução
Slide 38
Slide 38 text
Critical Falha de serviços externos
Slide 39
Slide 39 text
Alert Falha que precisa de ação imediata
Slide 40
Slide 40 text
Emergency Sistema está fora
Slide 41
Slide 41 text
PHP
Slide 42
Slide 42 text
PSR-3 Monolog
Slide 43
Slide 43 text
Exceptions Nativas
Slide 44
Slide 44 text
Hierarquia
Slide 45
Slide 45 text
Exceptions Personalizadas
Slide 46
Slide 46 text
No content
Slide 47
Slide 47 text
php.ini Dev display_errors = On error_reporting = -1 log_errors = On error_log = /var/log/app_error.log php.ini Prod display_errors = Off error_reporting = -1 log_errors = On error_log = /var/log/app_error.log
Slide 48
Slide 48 text
Análise de logs
Slide 49
Slide 49 text
tail -f /var/log/app_error.log Para um servidor
Slide 50
Slide 50 text
Agregação, Syslog 20 servidores
Slide 51
Slide 51 text
No content
Slide 52
Slide 52 text
No content
Slide 53
Slide 53 text
No content
Slide 54
Slide 54 text
No content
Slide 55
Slide 55 text
Dicas
Slide 56
Slide 56 text
Antecipe problemas analisando seus logs
Slide 57
Slide 57 text
Tenha rotinas para ver logs não críticos
Slide 58
Slide 58 text
Separar responsabilidades para atribuir e identificar erros corretamente
Slide 59
Slide 59 text
Testes. Caso infeliz, para reproduzir bugs
Slide 60
Slide 60 text
Erro em recursos, Banco, rede, filesystem
Slide 61
Slide 61 text
Erros provocados por ataques/usuário
Slide 62
Slide 62 text
Queries lentas
Slide 63
Slide 63 text
Referências ● RFC 5424 - The Syslog Protocol https://tools.ietf.org/html/rfc5424 ● PSR-3 https://www.php-fig.org/psr/psr-3/ ● https://www.youtube.com/watch?v=pGPyKxuUAAo
Slide 64
Slide 64 text
OBRIGADO @raph_almeida