Introdução ao PHP e DTrace

DTrace é um framework de instrumentação com alta disponibilidade e pequena sobrecarga, disponível em um número de plataformas incluindo Solaris, macOS, Oracle Linux e BSD. DTrace pode instrumentar comportamento do sistema operacional e execução de programa de usuário. Ele pode exibir valores de argumentos e ser usado para inferir estatísticas de desempenho. Os sensores são monitorados pos scripts criados pelo usuário escritos na linguagem própria do DTrace (D). Isto permite uma análise eficiente de pontos de dados.

Sensores PHP que não estão monitorados ativamente por um script D do usuário não contêm código instrumentado, então não há degradação de desempenho durante a execução normal da aplicação. Sensores que estão sendo monitorados incorrem em uma sobrecarga pequena o suficiente para permitir monitoramento pelo DTrace em sistemas ativos em fase de produção.

PHP incorpora sensores com "Instrumentação Estaticamente Definida no Nível de Usuário" (USDT em inglês) que são ativados em tempo de execução. Por exemplo, quando um script D está monitorando o sensor de function-entry do PHP, então a cada momento que uma função do PHP é chamada, este sensor é disparado e o código de ação do script D associado é executado. Este código de ação poderia, por exemplo, imprimir argumentos de sensor como a localização do arquivo-fonte da função PHP. Ou a ação poderia agregar dados como o númedo de vezes que cada função é chamada.

Apenas os sensores USDT do PHP são descritas aqui. Refira-se à literatura externa do Dtrace, tanto geral quanto específica do sistema operacional, para entender como o DTrace pode ser usado para instrumentar funções arbitrárias, e como ele pode ser usado para instrumentar comportamento do sistema operacional. Note que nem todas as características do DTrace estão disponíveis em todas as implementações.

Os sensores estáticos do Dtrace no PHP podem alternativamente ser utilizados com a ferramenta SystemTap de algumas distribuições Linux.