WSO2 ESB如何度量调用或发送中介的响应时间
是否有任何官方支持的方式来显示WSO2 ESB调用或发送中介的准确响应时间?您可以使用内置的Synapse Message Context属性轻松完成此操作。Synapse Message Context属性可以以毫秒为单位检索当前时间,您可以在流的任何所需点将此值设置为属性,并在需要时访问它 您可以如下所示设置属性WSO2 ESB如何度量调用或发送中介的响应时间,wso2,wso2esb,Wso2,Wso2esb,是否有任何官方支持的方式来显示WSO2 ESB调用或发送中介的准确响应时间?您可以使用内置的Synapse Message Context属性轻松完成此操作。Synapse Message Context属性可以以毫秒为单位检索当前时间,您可以在流的任何所需点将此值设置为属性,并在需要时访问它 您可以如下所示设置属性 <property name="TIME" expression="get-property('SYSTEM_TIME')" scope="default" type="LO
<property name="TIME" expression="get-property('SYSTEM_TIME')" scope="default" type="LONG"/>
...
<log>
<property name="Time : " expression="get-property('TIME')"/>
</log>
...
假设您已将开始时间和结束时间记录为两个名为“time_START”和“time_end”的属性,您可以使用脚本中介来计算时间差,如下例所示
<script language="js">
var time1 = mc.getProperty("TIME_START");
var time2 = mc.getProperty("TIME_END");
var timeDifference = time2 - time1;
print("Response Time : " + timeDifference + " ms ");
mc.setProperty("RESPONSE_TIME", timeDifference);
</script>
下面是一个带有响应时间计算位的代理服务示例
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="SampleTimeProxy"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<property name="TIME_START"
expression="get-property('SYSTEM_TIME')"
scope="default"
type="LONG"/>
</inSequence>
<outSequence>
<send/>
<property name="TIME_END"
expression="get-property('SYSTEM_TIME')"
scope="default"
type="LONG"/>
<script language="js">
var time1 = mc.getProperty("TIME_START");
var time2 = mc.getProperty("TIME_END");
var timeDifference = time2 - time1;
print("-------------- " + timeDifference + " ms -----------------");
mc.setProperty("RESPONSE_TIME", timeDifference);
</script>
<log>
<property name="Response Time in ms: " expression="get-property('RESPONSE_TIME')"/>
</log>
</outSequence>
<endpoint>
<address uri="http://localhost:8080/axis2/services/SampleService"/>
</endpoint>
</target>
<publishWSDL uri="http://localhost:8080/axis2/services/SampleService?wsdl"/>
<description/>
</proxy>
这里我们将响应时间设置为另一个名为“response_time”的属性
您可以在此博客上阅读更多内容: