Appsignal.HTTPoison als Drop-in-Client und Appsignal.HTTPoison.Base für benutzerdefinierte Client-Module. Die Response- und Error-Structs (%HTTPoison.Response{}, %HTTPoison.Error{}, …) sind HTTPoisons eigene Typen und werden unverändert zurückgegeben.
AppSignal verpackt Anfragen, die über Appsignal.HTTPoison ausgeführt werden, als request.httpoison-Events in der Event-Timeline Ihrer Performance-Traces, sodass Sie sehen können, wie viel Zeit HTTPoison mit externen API-Anfragen verbringt. Diese Daten können Sie dazu veranlassen, die API-Anfragen in einen Hintergrund-Job zu verschieben oder Caching einzuführen, um die Performance zu verbessern und unnötige API-Anfragen zu begrenzen.
Konfiguration
Die HTTPoison-Instrumentierung ist Opt-in. Wählen Sie den Ansatz, der am besten zu Ihrer Anwendung passt.Appsignal.HTTPoison direkt verwenden
Rufen SieAppsignal.HTTPoison anstelle von HTTPoison auf, um instrumentierte Anfragen zu stellen. Verwenden Sie Pattern-Matching auf %HTTPoison.Response{...} und %HTTPoison.Error{...} wie gewohnt – dies sind HTTPoisons eigene Struct-Typen, die unverändert zurückgegeben werden:
Benutzerdefinierte Client-Module
Wenn Sie ein benutzerdefiniertes HTTP-Client-Modul basierend aufHTTPoison.Base verwenden, ersetzen Sie use HTTPoison.Base durch use Appsignal.HTTPoison.Base. Weitere Änderungen sind nicht erforderlich – innerhalb des Moduls können Sie Methoden wie get/1 und post/3 aufrufen und wie gewohnt auf HTTPoisons Response- und Error-Structs matchen:
request/5 überschreibt, stellen Sie sicher, dass Sie super aufrufen, um die Instrumentierung beizubehalten: