8.17. Sampling

サンプリングスロットラー

サンプリングスロットラーを使用すると、ルート上のトラフィックからエクスチェンジのサンプルを抽出することができます。単一のエクスチェンジのみを通過させるサンプリング期間で設定されています。それ以外のエクスチェンジはすべて停止します。

デフォルトでは、サンプル期間は 1 秒です。

Java DSL の例

sample() DSL コマンドを使用して、以下のようにサンプラーを起動します。

// Sample with default sampling period (1 second)
from("direct:sample")
    .sample()
    .to("mock:result");

// Sample with explicitly specified sample period
from("direct:sample-configured")
    .sample(1, TimeUnit.SECONDS)
    .to("mock:result");

// Alternative syntax for specifying sampling period
from("direct:sample-configured-via-dsl")
    .sample().samplePeriod(1).timeUnits(TimeUnit.SECONDS)
    .to("mock:result");

from("direct:sample-messageFrequency")
    .sample(10)
    .to("mock:result");

from("direct:sample-messageFrequency-via-dsl")
    .sample().sampleMessageFrequency(5)
    .to("mock:result");

Spring XML の例

Spring XML では、sample 要素を使用してサンプラーを呼び出します。ここには samplePeriod および units 属性を使用してサンプリング期間を指定するオプションがあります。

<route>
    <from uri="direct:sample"/>
    <sample samplePeriod="1" units="seconds">
        <to uri="mock:result"/>
    </sample>
</route>
<route>
    <from uri="direct:sample-messageFrequency"/>
    <sample messageFrequency="10">
        <to uri="mock:result"/>
    </sample>
</route>
<route>
    <from uri="direct:sample-messageFrequency-via-dsl"/>
    <sample messageFrequency="5">
        <to uri="mock:result"/>
    </sample>
</route>

オプション

sample DSL コマンドは、以下のオプションをサポートします。

名前

デフォルト値

説明

messageFrequency

 

N 番目のメッセージごとにメッセージをサンプリングします。頻度または周期のいずれかを使用できます。

samplePeriod

1

N 周期ごとにメッセージをサンプリングします。頻度または周期のいずれかを使用できます。

units

SECOND

JDK の java.util.concurrent.TimeUnit の列挙としての時間単位。