Como vizualizar e analizar Firebird Trace?
Atenção: Firebird Trace é seguro, pode ser iniciado na produção, não afeta o desempenho no caso de usar a configuração recomendada abaixo.
Você provavelmente sabe que o Firebird tem um recurso bacana, chamado Trace, mas não experimentou, ou tentou e viu uma saída de texto chata e complexa?
Este artigo descreve como visualizar o Trace usando o serviço gratuito da IBSurgeon: https://cc.ib-aid.com
Apenas 4 passos necessárias - veja abaixo:
Tracing para Firebird 3.0, 4.0, 5.0
Passo 1 - Criar arquivo de configuração
Copie a seguinte configuração no arquivo fbtrace30.conf ou baixe o arquivo pronto aqui.
database
{
enabled = true
time_threshold = 200
log_connections = true
log_statement_finish = true
log_errors = true
log_initfini = false
print_plan = true
#explain_plan = false
print_perf = true
max_sql_length = 65000
max_arg_length = 240
max_arg_count = 50
}
Coloque o arquivo na pasta sem espaços, por exemplo, C:\temp\fbtrace30.conf ou /opt/fbtrace30.conf.
Passo 2 - Teste a configuração
Execute fbtracemgr (ferramenta de linha de comando Firebird padrão) para verificar se a configuração funciona:
Windows
Abra o prompt de comando (execute cmd.exe), vá para a pasta com o Firebird (pode ser C:\Program Files\Firebird\Firebird_3_0\ ou C:\HQbird\Firebird30) e execute (use sua senha SYSDBA real em vez de masterkey)
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf
Linux
Abra o terminal e, em seguida, fbtracemgr da pasta bin do Firebird (/opt/firebird/bin ou /usr/local/bin)
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf
Você verá a saída no prompt de comando, mais ou menos assim:
Trace session ID 2 started
2021-05-26T10:23:48.5690 (2996:00000000018E0040) ATTACH_DATABASE
C:\HQBIRD\FIREBIRD30\SECURITY3.FDB (ATT_6189, SYSDBA:NONE, NONE, )
Pare o Trace com Ctrl-C (e depois Enter, se necessário).
Passo 3 - Colete o log para arquivo
Se você não encontrar erros no passo anterior, execute o Trace para coletar a saída para o arquivo de log, c:\temp\log1.log no exemplo do Windows:
Windows
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf > c:\temp\log1.log
Linux
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf > log1.log
Mantenha-o em execução para capturar as consultas SQL problemáticas por um tempo (o mínimo é 3-4 minutos, o recomendado é 1 hora) e, em seguida, interrompa o fbtracemgr com Ctrl-C.
Passo 4. Upload logs
Faça upload do arquivo de registro resultante para o Trace Visualization em cc.ib-aid.com
Atenção: se o tamanho do arquivo lo for maior que 100Mb, compacte-o (com zip Windows padrão ou zip Linux) e faça upload de um log compactado.
Tracing para Firebird 2.5
Passo 1 - Criar arquivo de configuração
Copie a seguinte configuração no arquivo fbtrace25.conf ou baixe o arquivo pronto em aqui.
<database>
enabled true
log_connections true
log_statement_finish true
log_errors true
print_plan true
print_perf true
time_threshold 200
max_sql_length 65000
max_blr_length 500
max_dyn_length 500
max_arg_length 80
max_arg_count 50
</database>
Coloque o arquivo na pasta sem espaços, por exemplo, C:\temp\fbtrace25.conf, ou /opt/fbtrace25.conf
Passo 2 - Teste a configuração
Execute fbtracemgr (ferramenta de linha de comando Firebird padrão) para verificar se a configuração funciona:
Windows
Abra o prompt de comando (execute cmd.exe), vá para a pasta Bin do Firebird (pode ser C:\Program Files\Firebird\Firebird_2_5\bin ou C:\HQbird\Firebird25\bin) e execute (use sua senha SYSDBA real em vez da chave masterkey)
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf
Você verá a saída no prompt de comando, mais ou menos assim:
Trace session ID 2 started
2021-05-26T10:23:48.5690 (2996:00000000018E0040) ATTACH_DATABASE
C:\HQBIRD\FIREBIRD30\SECURITY3.FDB (ATT_6189, SYSDBA:NONE, NONE, )
Linux
Abra o terminal e, em seguida, fbtracemgr da pasta bin do Firebird (/opt/firebird/bin ou /usr/local/bin)
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf
Passo 3 - Colete o log para arquivo
Se você não encontrar erros no passo anterior, execute o Trace para coletar a saída para o arquivo de log, c:\temp\log1.log no exemplo do Windows:
Windows
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf > c:\temp\log1.log
Linux
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf > log1.log
Mantenha-o em execução para capturar as consultas SQL problemáticas por um tempo (o mínimo é 3-4 minutos, o recomendado é 1 hora) e, em seguida, interrompa o fbtracemgr com Ctrl-C.
Passo 4. Upload logs
Faça upload do arquivo de registro resultante para o Trace Visualization em cc.ib-aid.com
Atenção: se o tamanho do arquivo lo for maior que 100Mb, compacte-o (com zip Windows padrão ou zip Linux) e faça upload de um log compactado.
Após o login, clique em "Upload" no canto superior direito do widget "Traces":
Em seguida, selecione o arquivo de log de Trace (máx. 100 Mb) no disco e clique em Upload:
O upload pode levar de 1 a 2 minutos, dependendo da velocidade de upload da sua conexão com a Internet e da conectividade geral.
Em seguida, você verá o arquivo enviado como "Processando":
O processamento geralmente leva de 1 a 2 minutos. Você precisa usar o botão "Atualizar" para ver o status do processamento.
Após a conclusão do processamento, você verá links para o relatório de resumo de desempenho (coluna "Trace summary report", link "Html") e para a representação gráfica de rastreamento (coluna e link "Gráphs"):
Se você clicar em "Html", a nova página com o relatório de resumo de Trace aparecerá.
O relatório contém listas das principais consultas, classificadas por duração (ou seja, as consultas mais longas), frequência (as consultas mais frequentes), resumo do tempo (consultas SQL, que levaram a maior parte do tempo), buscas (consultas que consomem mais CPU), leituras (leituras de disco) e gravações (gravações de disco).
Além disso, há um resumo do processo, onde você pode ver os aplicativos que consumiram a maioria dos recursos.
Se clicar em "Gráficos", verá a representação gráfica do registo de Trace, com as principais consultas, agrupadas a cada minuto (pelo momento de finalização da execução das consultas).
Se você clicar no momento específico, verá as principais consultas do registro de rastreamento, seu plano, parâmetros, estatísticas: