繁体   English   中英

WSO2 ESB如何测量呼叫或发送调解器的响应时间

[英]WSO2 ESB How to measure the response time of call or send mediator

是否有任何官方支持的方法来显示从WSO2 ESB发出呼叫或发送调解器的确切响应时间?

您可以使用内置的Synapse消息上下文属性 ,并轻松执行此操作。 Synapse消息上下文属性可以检索当前时间(以毫秒为单位),您可以将此值设置为流中任何所需点的属性,并在需要时访问它。

您可以如下所示设置属性。

<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 ”的属性。

您可以在此博客上了解更多信息: http : //sumedhask.blogspot.com/2013/10/a-simple-way-to-log-time-durations-in.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM