Zend Server 8 – Eventos e Code Tracing

Boa tarde pessoal!

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:

Zend Server 8 - Event

Ta tabela abaixo “Latest Critical Events”, ele ja me informa que o meu projeto gerou um evento “Slow Request Execution” dizendo que levou mais de 10 segundos para abrir.

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

Zend Server 8 - Event Details

Nesta tela podemos ver todas as variáveis do $_SERVER, as do request e detalhes da rota. Ao clicar na pequena engrenagem à esquerda, vamos para a tela do Code Tracing:

Zend Server 8 - Code TracingO Code Tracing é um dos melhores recursos do Zend Server. Com ele podemos acompanhar todo o trajeto da requisição, desde a primeira função até a última. Ele dá detalhes sobre cada função e arquivo usados, como % de memória usada, % do tempo, tempo em milissegundos e mostra até a linha que foi executada no arquivo php.

Podemos notar na imagem acima que algumas das linhas mostram o tempo de mais de 10 segundos e 98% de tempo de execução. Vamos abrindo cada uma delas até descobrirmos onde exatamente está o problema.

Zend Server 8 - Code Trading 2

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

Parece que achamos nosso problema de lentidão 🙂

No topo da lista, existem 2 checkboxes muito úteis também. O primeiro é “Show Memory Usage” que mostra uma coluna a mais com o consumo de memória ao longo da requisição. Se sua página estiver consumindo muito, este é o caminho para descobrir onde:

Zend Server 8 - Code Tracing - Memory

O segundo checkbox é “Highlight the most time-consuming path” que nos mostra o caminho da requisição que mais consumiu tempo. No nosso problema anterior, podemos ligar este checkbox para já nos mostrar o caminho todo, ganhando tempo:

Zend Server 8 - Code Tracing - Time path

Dependendo da licença do Zend Server, pode-se mandar alerta por email e executar ações customizadas caso uma regra de monitoramento aconteça. Já existem várias regras por padrão e o melhor, você pode definir por aplicação (definidas manualmente ou pelo deployment)

Zend Server 8 - Code Tracing - Rules

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:

Zend Server 8 - Code Trading - Rule Detail

Ele permite também criarmos nossas próprias regras.

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 – Virtual Hosts

Parte 4 – Z-Ray

Parte 5 – Distribuição (Deployment)

Parte 6 – Definir uma aplicação

Parte 7 – Métrica

Parte 8 – Eventos e Code Tracing

Zend Server

Até a próxima!

Leandro Silva

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

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

  1. Pingback: DULTON ダルトン 【レビューを書いて5%OFF】『キッチンスケール Stream line KITCHEN SCALE STREAM LINE』 100-

  2. Pingback: 冷却マット ひんやり 低反発冷却ジェルパッド 保冷 シート マット クール

Deixe uma resposta

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

*