Sample
A sampling throttler allows you to extract a sample of the exchanges from the traffic through a route.
It is configured with a sampling period during which only a single exchange is allowed to pass through. All other exchanges will be stopped.
Will by default use a sample period of 1 seconds.
Options
The Sample EIP supports 3 options which are listed below:
| Name | Description | Default | Type | 
|---|---|---|---|
| samplePeriod | Sets the sample period during which only a single Exchange will pass through. | 1 | Long | 
| messageFrequency | Sets the sample message count which only a single Exchange will pass through after this many received. | Long | |
| units | Sets the time units for the sample period, defaulting to seconds. | SECONDS | TimeUnit | 
Samples
You use this EIP with the sample DSL as show in these samples.
These samples also show how you can use the different syntax to configure the sampling period:
from("direct:sample")
    .sample()
    .to("mock:result");
from("direct:sample-configured")
    .sample(1, TimeUnit.SECONDS)
    .to("mock:result");
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");And the same example in Spring XML is:
<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>And since it uses a default of 1 second you can omit this configuration in case you also want to use 1 second
<route>
    <from uri="direct:sample"/>
    <!-- will by default use 1 second period -->
    <sample>
        <to uri="mock:result"/>
    </sample>
</route>