Library

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 e 4.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 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 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 service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf > c:\temp\log1.log

Linux

./fbtracemgr -se 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 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 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 service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf > c:\temp\log1.log

Linux

./fbtracemgr -se 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":

Select Upload trace

Em seguida, selecione o arquivo de log de Trace (máx. 100 Mb) no disco e clique em Upload:

select tarce log to 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: