Zend Server – Parte 5 – Eventos e Code Tracing

Boa tarde pessoal!

Update: Existe um post atualizado com a versão 8. Pode ser encontrada neste link.

Hoje vou falar um pouco sobre dois recursos muito bons do Zend Server, Eventos e Code Tracing.

É dito que 80% do tempo gasto em solucionar um bug é apenas para localizar o bug. Até acharmos onde está a linha com problema pode demorar muito. A falta de um ponto-e-vírgula é relativamente rápido, só olhar no log do php, o problema é quando o erro acontece “de vez em quando”, dependendo de certas condições do sistema, talvez uma variável sendo passada errada por exemplo.

O Zend Server facilita em MUITO este trabalho de localizar os problemas, e não só erros, mas consumos exagerados de memória, lentidão ao abrir uma página, etc.

Então vamos ver na prática como funciona. Vamos usar nosso Zend Server e nosso projeto tutorial instalado nesta série (veja os posts anteriores).

Tentei abrir meu projeto e demorou muito, o que está gerando esta demora? Vamos analisar. Primeiro vamos abrir o Zend Server:

1

Primeiro notamos pela gráfico da pizza que, de todos os eventos no sistema, 75% são de erros e 25% de performance.

Ta tabela abaixo, ele ja me informa que o meu projeto gerou um evento “Slow Request Execution” dizendo que levou mais de 10 segundos para abrir e que também gerou alguns erros de PHP na função date. Vamos começar analisando este último.

Vamos clicar em cima da linha do erro sobre a data para vermos os detalhes:

2

 

Hmm, pare que está faltando uma configuração da timezone do PHP. Este é rápido de ajustar e nem precisamos acessar servidor, editar php.ini, nada. Faremos pelo próprio Zend Server.

Primeiro vamos na aba “Configurations” -> “PHP” e clicamos na linha do “date”:

3

 

Podemos ver que o campo “timezone” realmente está em branco. Basta digitarmos nele “America/Sao_Paulo” e clicarmos no botão “Save” acima. Depois da alteração, basta reiniciar o Zend Server e pronto.

Vamos tentar abrir novamente o projeto e ver se o erro sobre a data parou:

4

 

Bom. Atualizei a tela e gerou apenas mais 1 evento, o da lentidão na resposta. Novamente vamos clicar em cima dele para vermos os detalhes:

5

 

E clicar em “More details” para vermos os detalhes:

6

 

Nesta tela podemos ver todas as variáveis do $_SERVER, as do request e detalhes da rota. Infelizmente a versão gratuita não possui o recurso de “Code Tracing” que nos permite ir linha a linha no caminho da requisição, o que nos obrigaria a procurar o motivo da demora do jeito “tradicional”. Mas vou mostrar como o recurso funciona, pois possuo a licença Developer. Ao clicar na pequena engrenagem à esquerda, vamos para a tela do Code Tracing:7

 

E verificamos que a função “indexAction” do Application\Controller\IndexController está levando, sozinha, 10 segundos. Vamos ver o que ela faz:

Parece que achamos nosso problema de lentidão 🙂

Dependendo da licença do Zend Server, pode-se mandar alerta por email também, caso uma regra de monitoramento aconteça. Já existem várias regras por padrão:

9

 

E cada uma com níveis de alerta e cada nível com suas configurações. Por exemplo, podemos mandar email caso uma página leve mais de 5 segundos, mas se levar 4 o servidor irá apenas registrar o evento:

10

 

Ele permite também criarmos nossas próprias regras, inclusive na versão gratuita (apesar de alguns recursos estarem bloqueados).

Realmente facilita e acelera em MUITO a procura de erros, já mostra qual a função com problema, qual linha, quais parâmetros foram passados para a função, quais os retornos das funções, o caminho inteiro, etc. Uma ferramenta muito boa.

Referências:

Parte 1 – Visão Geral

Parte 2 – Instalação e Configuração

Parte 3 – Distribuição (Deployment)

Parte 3.5 – Definir uma aplicação

Parte 4 – Métrica

Parte 5 – Eventos e Code Tracing

 

 

Até a próxima!

Leandro Silva

PHP developer since 1997, loves movies, music and dogs.

2 Comentários para: “Zend Server – Parte 5 – Eventos e Code Tracing

  1. Pingback: Zend Server – Parte 4 – Métrica | Leandro Silva

  2. Pingback: Zend Server – Parte 1 – Visão Geral | Leandro Silva

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*