翻翻過去那場雪
2021-12-23 15:51:05
我正在嘗試實現(xiàn) Apigee Logging 來記錄幾個屬性,例如客戶端 IP、總處理延遲和其他要從請求和響應中檢索的自定義標頭。它們分為 BaseLog 屬性、SysLog 屬性和 AppLog 屬性,后者分別寫在 BaseLog 之上。我想知道記錄這些的最佳方式是什么 - 使用 MessageLogging Policy 還是使用自定義 JS 代碼來提取和填充變量會更好?最后,我必須將日志發(fā)送到 Splunk 服務器。怎么會去做呢?任何輸入都會有幫助!謝謝。
2 回答

莫回無
TA貢獻1865條經(jīng)驗 獲得超7個贊
我使用JavaScript 策略來設置我想在日志文件中寫入的變量(例如 requestDateTime、ip 等),方法是使用context.setVariable("variableName", value);
然后在MessageLogging Policy 中引用這些變量,例如
<Message>{requestDateTime}|{client.ip}|{request.content}|{elapsTime}</Message>
實際上,Apigee 有很多有用的變量,如果您不想在流程中添加更多 JS 策略,可以直接使用它,但對于我的情況,我想在日志中寫入很多值,其中一些必須連接使用其他變量,因此在 MessageLogging 中引用之前很容易設置它。
但是,我只是分享我使用的方法。
希望對你有用。

冉冉說
TA貢獻1877條經(jīng)驗 獲得超1個贊
盡量減少 JavaScript 或任何其他擴展策略的使用通常是一個很好的做法,因為每次這些擴展策略執(zhí)行時它都會在消息處理器中產(chǎn)生一個線程,因此有死鎖的風險,因為線程池總是有限制。
Apigee 專門提供了用于以異步方式登錄的消息日志記錄策略,因此您應該嘗試在 Post 客戶端流中設置 all 并嘗試對任何類型的變量分配使用分配消息策略而不是擴展策略。
希望這有幫助!
添加回答
舉報
0/150
提交
取消