أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
يعد التسجيل إحدى الطرق الفعالة لتصحيح الأخطاء. معلومات عن واجهة برمجة التطبيقات يمكن تسجيل الطلبات، مثل العناوين ومَعلمات النماذج ومَعلمات طلب البحث والمتغيّرات الديناميكية وما إلى ذلك مرجعًا لاحقًا. يمكن تسجيل المعلومات محليًا على معالِجات الرسائل (Apigee Edge for Private Cloud فقط) أو إلى خوادم تابعة لجهات خارجية، مثل Sumo Logic أو Splunk أو Loggly
نقوش
في الرمز أدناه، يتم استخدام الكائن httpClient
في سياسة JavaScript لتسجيل البيانات في
Sumo Logic. هذا يعني أن عملية التسجيل تحدث بالفعل أثناء
معالجة الطلب/الرد. يؤدي هذا الأسلوب إلى نتائج عكسية لأنّه يضيف إلى عملية المعالجة
مما يؤدي إلى زيادة أوقات الاستجابة الإجمالية.
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();
السبب هنا هو الاتصال برقم waitForComplete()
، ما يؤدي إلى تعليق اتصال المتصل.
العمليات حتى تكتمل عملية التسجيل. النمط الصالح هو جعل هذا غير متزامن
من خلال إنهاء هذه المكالمة.
التأثير
- يؤدي تنفيذ رمز التسجيل من خلال سياسة JavaScript إلى زيادة وقت الاستجابة لواجهة برمجة التطبيقات. طلبك.
- ويمكن أن تؤدي الطلبات المتزامنة إلى التأكيد على الموارد المتاحة على "معالج الرسائل"، وبالتالي مما يؤثر سلبًا في معالجة الطلبات الأخرى.
أفضل الممارسات
- استخدام سياسة MessageLogging لنقل/تسجيل البيانات إلى خوادم السجل أو السجل التابع لجهة خارجية خدمات إدارة المشروعات مثل Sumo Logic وSplunk وLoggly وغيرها.
- وتكمن أهم ما يميز سياسة تسجيل الرسائل في إمكانية تحديدها في قسم تدفق العميل: الذي يتم تنفيذه بعد إرسال الرد إلى تطبيق العميل الطالب.
- يساعد تحديد هذه السياسة في تدفق "عميل النشر" على فصل نشاط التسجيل معالجة الطلبات/الاستجابة، وبالتالي تجنب أوقات الاستجابة.
- إذا كان هناك متطلب محدد أو سبب لإجراء تسجيل باستخدام JavaScript (وليس مشاركة
خيار تدفق العميل المذكور أعلاه)، ينبغي أن يتم بشكل غير متزامن. أو بعبارةٍ أخرى،
إذا كنت تستخدم كائن
httpClient
، عليك التأكّد من أنّ JavaScript لا يتم تنفيذwaitForComplete