我正在尝试实现 Apigee Logging 来记录几个属性,例如客户端 IP、总处理延迟和其他要从请求和响应中检索的自定义标头。它们分为 BaseLog 属性、SysLog 属性和 AppLog 属性,后者分别写在 BaseLog 之上。我想知道记录这些的最佳方式是什么 - 使用 MessageLogging Policy 还是使用自定义 JS 代码来提取和填充变量会更好?最后,我必须将日志发送到 Splunk 服务器。怎么会去做呢?任何输入都会有帮助!谢谢。
2 回答
莫回无
TA贡献1865条经验 获得超7个赞
我使用JavaScript 策略来设置我想在日志文件中写入的变量(例如 requestDateTime、ip 等),方法是使用context.setVariable("variableName", value);
然后在MessageLogging Policy 中引用这些变量,例如
<Message>{requestDateTime}|{client.ip}|{request.content}|{elapsTime}</Message>实际上,Apigee 有很多有用的变量,如果您不想在流程中添加更多 JS 策略,可以直接使用它,但对于我的情况,我想在日志中写入很多值,其中一些必须连接使用其他变量,因此在 MessageLogging 中引用之前很容易设置它。
但是,我只是分享我使用的方法。
希望对你有用。
冉冉说
TA贡献1877条经验 获得超1个赞
尽量减少 JavaScript 或任何其他扩展策略的使用通常是一个很好的做法,因为每次这些扩展策略执行时它都会在消息处理器中产生一个线程,因此有死锁的风险,因为线程池总是有限制。
Apigee 专门提供了用于以异步方式登录的消息日志记录策略,因此您应该尝试在 Post 客户端流中设置 all 并尝试对任何类型的变量分配使用分配消息策略而不是扩展策略。
希望这有帮助!
添加回答
举报
0/150
提交
取消
