Sua aplicação está usando uma combinação de Rails, Grape, Hanami, Padrino ou Sinatra? Siga nosso guia sobre instrumentação de múltiplas aplicações Rack.
Instalação
Após instalar a gem AppSignal, adicione a integração AppSignal depois de requererhanami/boot no arquivo config.ru.
Tratamento de exceptions
O Hanami não possui nenhum tratamento de exceptions por padrão. O servidor web (como Puma ou Unicorn) mostrará uma página básica de “internal server error” se um erro ocorrer no app. Essas exceptions não tratadas serão reportadas ao AppSignal automaticamente. O guia de tratamento de exceptions do Hanami explica como adicionar tratamento de exceptions customizado em aplicações Hanami para renderizar páginas de erro customizadas. Exceptions tratadas não serão reportadas ao AppSignal automaticamente. Recomendamos adicionar o seguinte código à classe base Action da aplicação encontrada emapp/action.rb para adicionar tratamento de exceptions para StandardError. Dessa forma, não é necessário adicionar tratamento de exceptions a cada classe de action.
No método handle_standard_error, configurado por handle_exception, chame o helper Appsignal.report_error para reportar a exception ao AppSignal e não perder nenhum erro reportado pelo seu app. (Use o helper Appsignal.set_error ao usar a gem Ruby versão 3 ou mais antiga.)
Appsignal.report_error às exceptions do Hanami que você deseja reportar, o AppSignal reportará esses erros sempre que ocorrerem.
Atributos de span
Somente no modo collector: isso se aplica quando o AppSignal para Ruby é executado no modo collector. Nos demais casos, não tem efeito.
http.request.method— o método da requisição.url.scheme,url.patheurl.query— o endereço requisitado.http.response.status_code— o status com o qual sua aplicação respondeu.
error.type, a classe do erro.
Tracing distribuído
Somente no modo collector: isso se aplica quando o AppSignal para Ruby é executado no modo collector. Nos demais casos, não tem efeito.
traceparent continua o trace que ele nomeia.
A requisição aparece dentro do trace do serviço que a chamou, sob a requisição que a causou. Você pode seguir uma requisição lenta desse serviço até esta aplicação sem trocar de trace.
Os clientes HTTP suportados pelo AppSignal iniciam o trace. Uma requisição sem o header inicia um novo.