Este artigo apresenta a ferramenta format_obproxy_digest_log, projetada para analisar o tempo gasto em consultas SQL na camada de rede do OceanBase Proxy (OBProxy). A solução compltea permite investigar a latência em requisições de SQL de negócios, tanto no lado do proxy (camada de rede) quanto no lado do servidor (camada do observer).
Nota Importante: Esta ferramenta foi desenvolvida para processar o arquivo de log obproxy_digest.log do OBProxy, especificamente baseada no formato de log da versão 433. Ela deve ser compatível com versões 4.x do OBProxy, mas a compatibilidade com versões futuras não é garantida.
Sobre o Log obproxy_digest.log
O arquivo obproxy_digest.log é o log de auditoria do OBProxy. Ele registra requisições SQL cujo tempo de execução excede um limite configurado, além de todas as requisições que resultam em erro.
- Slow Queries: Solicitações SQL com duração superior ao parâmetro
query_digest_time_thresholdsão registradas (o padrão é 100ms, mas em alguns ambientes pode ser 2ms). - Erros: Todas as requisições que falham, seja por erro interno do OBProxy ou erro retornado pelo OBServer, são registradas.
- Conteúdo do Log: Cada registro inclui detalhes como timestamp, nome da aplicação, TraceId, informações do banco físico (cluster:tenant:database), tipo de SQL, resultado (sucesso/falha), código de erro, tempo total de execução, tempo de pré-execução, tempo de conexão e tempo de execução no banco de dados.
Devido à complexidade e ao formato denso desse log, sua análise manual pode ser trabalhosa. A ferramenta format_obproxy_digest_log foi criada para simplificar esse processo.
Utilizando a Ferramenta
Após obter o executável format_obproxy_digest_log, transfira-o para o servidor Linux onde os logs estão disponíveis e conceda permissão de execução:
chmod +x format_obproxy_digest_log
Para visualizar as opções de uso, execute o comando sem argumentos:
./format_obproxy_digest_log
A ferramenta oferece uma interface simples para processar e formatar o log, tornando as informações relevantes mais fáceis de interpretar. O comando a seguir demonstra uma execução típica, onde o log é processado e a saída formatada é exibida ou redirecionada:
./format_obproxy_digest_log [opções] caminho/para/obproxy_digest.log > log_formatado.txt
A saída formatada organiza os campos-chave do log em um layout mais legível, permitindo uma análise mais rápida do tempo gasto em cada etapa do ciclo de vida da requisição SQL no proxy.