Span, oferecemos várias oportunidades para atualizar ou modificar seu estado interno. Hooks são o mecanismo para isso. Usando funções com formato específico, podemos enriquecer qualquer Span de saída com informações adicionais antes de ele ser enviado para a Push API.
Ambos os tipos de hooks são um array de funções compostas que são aplicadas da direita para a esquerda. Em outras palavras, os hooks adicionados por último são sempre os primeiros a serem aplicados.
Quando um Span é passado para appsignal.send(), ou um Error é passado para appsignal.sendError(), os hooks são aplicados ao Span na seguinte ordem:
- Decorators
- Argumentos opcionais
tagsounamespaceparaappsignal.send() - Overrides
Decorators
Pode ser necessário adicionar contexto adicional a umSpan no nível global, para que todas as requisições incluam essas informações por padrão. Decorators podem ser usados para isso.
Overrides
Overrides são a última oportunidade possível para atualizar dados em umSpan antes de ele ser enviado para a Push API. Por exemplo, você pode optar por remover quaisquer dados do usuário dos Spans em um override.
Escrevendo seu próprio Hook
Hooks são, essencialmente, funções que recebem umSpan como único argumento e retornam o mesmo Span. Durante a execução da função, modificações podem ser feitas no Span, mas sugerimos que nenhum outro efeito colateral seja introduzido.
Veja um exemplo de como você pode adicionar um Hook ao objeto Appsignal:
npm, por exemplo, recomendamos utilizar a interface de plugin para registrá-lo.