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 e configurar a gem AppSignal, adicione a integração AppSignal depois que o app Grape for carregado. A integração com Grape é requerida pela gem Ruby do AppSignal e os middlewares de event e instrumentation são adicionados nos exemplos de código a seguir.Instalação legada
Aplicações usando a gem AppSignal for Ruby 3.11 ou mais antiga, sigam estes passos para instalar o AppSignal em aplicações Grape. A integração com Grape é requerida pela gem Ruby do AppSignal e os middlewares de event handler e instrumentation são adicionados nos exemplos de código a seguir.Grape 4
No Grape 4, o nome da ação e o caminho de uma requisição descrevem a rota completa do endpoint, incluindo o prefixo da API, a versão do caminho e o ponto de montagem. Um endpoint que não declara um caminho próprio também deixa de receber uma barra final. Por exemplo, uma API comprefix "api" é reportada como GET::Acme::API#/users/:id/ no Grape 3 e como GET::Acme::API#/api/users/:id no Grape 4.
As requisições são agrupadas por nome de ação, então traces de endpoints cujos nomes mudam serão agrupados separadamente após a atualização para o Grape 4.
Apps Grape montados
Montar aplicações Grape em aplicações Ruby on Rails é suportado. A gem Ruby precisa estar em uma versão recente para instrumentar adequadamente as requisições para apps Grape montados.Ignorando erros
Para ignorar um erro específico do Grape, defina a flaggrape.skip_appsignal_error no environment da requisição. Definir essa flag como true instruirá o AppSignal a não reportar nenhum erro durante a requisição.
Use esta flag apenas se você precisa ignorar erros de uma aplicação Grape dinamicamente. Especifique classes de erro na opção ignore_errors para ignorá-las em toda a aplicação. Para mais informações sobre como silenciar notificações para erros específicos, veja nossa documentação de notification settings.
Reportando erros do rescue_from
Se um erro é resgatado no app usando rescue_from, o AppSignal não o receberá nem o rastreará. Para ainda reportar o erro, chame Appsignal.report_error no bloco rescue_from. (Use o helper Appsignal.set_error ao usar a gem Ruby versão 3 ou mais antiga.)
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.