Antipattern: JavaScript politikasını kullanarak verileri üçüncü taraf sunuculara kaydet

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Günlük kaydı, sorunları ayıklamak için etkili yöntemlerden biridir. API hakkında bilgiler üstbilgiler, form parametreleri, sorgu parametreleri, dinamik değişkenler vb. tüm istekler referans olabilir. Bilgiler, Mesaj İşlemcilerinde yerel olarak günlüğe kaydedilebilir (yalnızca Private Cloud için Apigee Edge) veya Sumo Logic, Splunk veya Loggly gibi üçüncü taraf sunuculara bağlayabilirsiniz.

Antipattern

Aşağıdaki kodda, JavaScript politikasındaki httpClient nesnesi, verileri bir Sumo Logic sunucusu. Bu, günlük kaydı sürecinin aslında istek/yanıt işleniyor. Bu yaklaşım, veri işleme sürecini hızlandırdığı için verimsizdir. genel gecikmeler artıyor.

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();

Buradaki neden, waitForComplete() numaralı telefona yapılan aramadır. Bu çağrı, arayanın işlemleri devam ettirir. Geçerli bir kalıp, bunu eşzamansız hale getirmektir iptal edebilirsiniz.

Etki

  • Günlük kaydı kodunun JavaScript politikası üzerinden yürütülmesi API'nin gecikmesini artırır isteğinde bulunabilirsiniz.
  • Eşzamanlı istekler, Mesaj İşleyici'deki kaynakları strese atabilir ve bunun sonucunda diğer isteklerin işlenmesini olumsuz yönde etkiler.

En İyi Uygulama

  • Verileri Günlük sunucularına veya üçüncü taraf günlüğüne aktarmak/günlük oluşturmak için MessageLogging politikasını kullanın. ve yönetim hizmetlerini (ör. Sumo Logic, Splunk, Loggly vs.)
  • Message Logging politikasının en büyük avantajı, İstemci Akışı, yanıt istekte bulunan istemci uygulamasına geri gönderildikten sonra yürütülür.
  • Post Client akışında bu politikanın tanımlanması, günlük kaydı etkinliği ile Böylece gecikmelerden kaçınmış olursunuz.
  • JavaScript üzerinden günlük kaydı yapılması gerekiyorsa ( istemci akışı seçeneği) eşzamansız olarak yapılması gerekir. Başka bir deyişle, bir httpClient nesnesi kullanıyorsanız JavaScript'in waitForComplete UYGULAMANIZI

Daha fazla bilgi