Appsignal.HTTPoison comme client drop-in, et Appsignal.HTTPoison.Base pour les modules clients personnalisés. Les structs de réponse et d’erreur (%HTTPoison.Response{}, %HTTPoison.Error{}, …) sont les types propres à HTTPoison et sont renvoyés inchangés.
AppSignal enveloppera les requêtes exécutées via Appsignal.HTTPoison en tant qu’événements request.httpoison sur la timeline des événements de vos traces de performance, vous permettant de voir combien de temps HTTPoison passe à effectuer des requêtes API externes. Ces données peuvent vous aider à décider de déplacer les requêtes API vers un job en arrière-plan, ou à introduire de la mise en cache pour aider à accélérer les performances et limiter les requêtes API inutiles.
Configuration
L’instrumentation HTTPoison est en opt-in. Choisissez l’approche qui correspond le mieux à votre application.Utiliser Appsignal.HTTPoison directement
AppelezAppsignal.HTTPoison au lieu de HTTPoison pour effectuer des requêtes instrumentées. Pattern-matchez sur %HTTPoison.Response{...} et %HTTPoison.Error{...} comme d’habitude — ce sont les types de structs propres à HTTPoison, renvoyés inchangés :
Modules clients personnalisés
Si vous utilisez un module client HTTP personnalisé basé surHTTPoison.Base, remplacez use HTTPoison.Base par use Appsignal.HTTPoison.Base. Aucune autre modification n’est nécessaire — à l’intérieur du module, vous pouvez appeler des méthodes comme get/1 et post/3, et faire correspondre les structs de réponse et d’erreur HTTPoison comme d’habitude :
request/5, veillez à appeler super pour préserver l’instrumentation :