1

アペンダーを使用して、perf4j によって生成されたパフォーマンス統計を JMX に公開しようとしてorg.perf4j.logback.JmxAttributeStatisticsAppenderいますが、うまくいきません。

以下は、私のlogback.xmlの関連部分です

    <appender name="fileAppender" class="ch.qos.logback.core.FileAppender">
        <file>${catalina.base}/logs/perfStats.log</file>
        <encoder>
            <pattern>%msg%n</pattern>
    </encoder> 
    </appender>

    <appender name="perf4jJmxAppender" class="org.perf4j.logback.JmxAttributeStatisticsAppender">
        <param name="TagNamesToExpose" value="Import"/>
        <param name="NotificationThresholds" value="ImportMax(&lt;10)"/>
    </appender>

<appender name="CoalescingStatistics"
              class="org.perf4j.logback.AsyncCoalescingStatisticsAppender">
        <param name="TimeSlice" value="1000"/>
    <appender-ref ref="fileAppender"/>
        <appender-ref ref="perf4jJmxAppender"/>
</appender>

<logger name="org.perf4j.TimingLogger" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="fileAppender"/>
        <appender-ref ref="CoalescingStatistics"/>
    </logger>

お気づきのように、 によって生成されたパフォーマンス統計をAsyncCoalescingStatisticsAppenderと の両方fileAppenderに追加していperf4jJmxAppenderます。perfStats.log ファイルは次の行を取得します...

Tag          Avg(ms)         Min         Max     Std Dev       Count

Import        667.0         667         667         0.0           1

...しかし、jconsole は、ImportMean、ImportMax、ImportMin などに対してすべて 0 を表示します。

私は何を間違っていますか?

4

1 に答える 1

0

CoalescingStatistics では TimeSlice 値が 1000 (1 秒) に設定されているため、JMX では最後の 1 秒しか表示されません。

この値を増やしてみて、それが役立つかどうかを確認してください。

于 2013-01-29T08:22:43.953 に答える