0

プロキシ インスタンスの各呼び出しの期間である WSO2ESB のログ ファイルにログインする必要があります。例: .... 10:10:14,736 [メッセージ ID: xxxxxxxxx] [期間: 259 ミリ秒] ....

これは、MessageID xxxxxxxx に関連付けられたプロキシ コールの継続時間が 259 ミリ秒だったことを意味します。統計メディエーターまたは BAM メディエーターをアクティブにしたくありません。

簡単にドットを付けるアイデアはありますか?Tks ニコラス

4

1 に答える 1

1

Synapse Message Context PropertySYSTEM_TIMEであるプロパティを使用できます。これを使用して、メッセージ フローの目的の場所で現在の時間をミリ秒単位で取得し、値をプロパティとして設定できます。次に、スクリプト メディエーターを使用して、時間値 (プロパティに格納されている) を読み取り、必要な計算を行う小さなスクリプト (Javascript または Ruby) を作成できます。結果をスクリプト メディエータに表示するか、新しいプロパティに設定して、プロキシ内でログに記録できるようにすることができます。

  1. Synapse メッセージ コンテキスト プロパティ

    http://docs.wso2.org/display/ESB470/Synapse+Message+Context+Properties

  2. スクリプト メディエーターの使用

    http://docs.wso2.org/pages/viewpage.action?pageId=26838871

  3. ログメディエーター

    http://docs.wso2.org/display/ESB470/Log+Mediator

次のサンプルが役立つ場合があります。

<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="SampleTimeProxy"
       transports="https,http"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <property name="TIME_1"
                   expression="get-property('SYSTEM_TIME')"
                   scope="default"
                   type="LONG"/>
      </inSequence>
      <outSequence>
         <send/>
         <property name="TIME_2"
                   expression="get-property('SYSTEM_TIME')"
                   scope="default"
                   type="LONG"/>
         <script language="js">var time1 = mc.getProperty("TIME_1");
              var time2 = mc.getProperty("TIME_2");
              var timeTaken = time2 - time1;
              print("--------------  " + timeTaken + " ms  -----------------");
              mc.setProperty("RESPONSE_TIME", timeTaken);
         </script>
         <log>
            <property name="time" expression="get-property('RESPONSE_TIME')"/>
         </log>
      </outSequence>
      <endpoint>
         <address uri="http://localhost:8080/axis2/services/SimpleStockQuoteService"/>
      </endpoint>
   </target>
   <publishWSDL uri="http://localhost:8080/axis2/services/SimpleStockQuoteService?wsdl"/>
   <description/>
</proxy>
                            
于 2013-10-05T16:33:06.243 に答える