Appsignal.HTTPoison como um cliente drop-in, e Appsignal.HTTPoison.Base para módulos cliente customizados. As structs de response e error (%HTTPoison.Response{}, %HTTPoison.Error{}, …) são os tipos próprios do HTTPoison e são retornados sem alteração.
O AppSignal envolverá as requisições executadas via Appsignal.HTTPoison como eventos request.httpoison na timeline de eventos das suas traces de desempenho, permitindo que você veja quanto tempo o HTTPoison gasta fazendo requisições a APIs externas. Esses dados podem ajudá-lo a decidir mover as requisições de API para um background job ou introduzir caching para ajudar a acelerar o desempenho e limitar requisições desnecessárias a APIs.
Configuração
A instrumentação do HTTPoison é opt-in. Escolha a abordagem que melhor se adapta à sua aplicação.Usando Appsignal.HTTPoison diretamente
ChameAppsignal.HTTPoison em vez de HTTPoison para fazer requisições instrumentadas. Faça pattern-match em %HTTPoison.Response{...} e %HTTPoison.Error{...} normalmente — esses são os tipos de struct próprios do HTTPoison, retornados sem alteração:
Módulos cliente customizados
Se você usa um módulo cliente HTTP customizado baseado emHTTPoison.Base, substitua use HTTPoison.Base por use Appsignal.HTTPoison.Base. Nenhuma alteração adicional é necessária — dentro do módulo, você pode chamar métodos como get/1 e post/3, e fazer match nas structs de response e error do HTTPoison normalmente:
request/5, certifique-se de chamar super para preservar a instrumentação: