Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Logowanie to jeden z wydajnych sposobów debugowania problemów. informacje o interfejsie API, takich jak nagłówki, parametry formularza, parametry zapytań, zmienne dynamiczne itd., później. Informacje mogą być logowane lokalnie w procesorach wiadomości (tylko Apigee Edge w przypadku chmury prywatnej) lub na serwery innych firm, takie jak Sumo Logic, Splunk czy Loggly.
Antywzór
W poniższym kodzie obiekt httpClient
w zasadach JavaScript służy do rejestrowania danych w
Serwer Sumo Logic. Oznacza to, że proces rejestrowania danych odbywa się
przetwarzania żądań/odpowiedzi. Takie podejście jest odwrotne do zamierzone, ponieważ zwiększa
co prowadzi do wydłużenia czasu oczekiwania.
LogData_JS:
<!-- /antipatterns/examples/1-4.xml --> <Javascript async="false" continueOnError="false" enabled="true" timelimit="2000" name="LogData_JS"> <DisplayName>LogData_JS</DisplayName> <ResourceURL>jsc://LogData.js</ResourceURL> </Javascript>
LogData.js:
<!-- /antipatterns/examples/1-5.xml --> var sumoLogicURL = "..."; httpClient.send(sumoLogicURL); waitForComplete();
Problemem jest połączenie z numerem waitForComplete()
, które zawiesza
do zakończenia procesu logowania. Prawidłowym wzorcem jest ustawienie wartości asynchronicznego
eliminując to wywołanie.
Wpływ
- Wykonywanie kodu logowania zgodnie z zasadami JavaScriptu skraca czas oczekiwania interfejsu API użytkownika.
- Równoczesne żądania mogą obciążać zasoby procesora wiadomości, przez co niekorzystnie wpływa na przetwarzanie innych żądań.
Sprawdzona metoda
- Użyj zasady MessageLogging, aby przenieść/zapisać dane do serwerów logów lub dziennika innej firmy. usług zarządzania, takich jak Sumo Logic, Splunk, Loggly itp.
- Największą zaletą zasad rejestrowania wiadomości jest to, że można je zdefiniować w narzędziu Post Przepływ klienta, który jest wykonywany po wysłaniu odpowiedzi do aplikacji klienckiej, która wysłała żądanie.
- Zdefiniowanie tej zasady w przepływie klienta Post Client pomaga oddzielić aktywność rejestrowania od przetwarzania żądań/odpowiedzi, co pozwala uniknąć opóźnień.
- Jeśli istnieją szczególne wymagania lub powód, dla których loguj się za pomocą JavaScriptu (a nie za pomocą
wspomnianej powyżej opcji przepływu klienta), trzeba to zrobić asynchronicznie. Innymi słowy,
jeśli używasz obiektu
httpClient
, musisz upewnić się, że JavaScript NIE wdrażajwaitForComplete