[[sample-eip]]
= Sample EIP
:page-source: core/camel-core-engine/src/main/docs/eips/sample-eip.adoc

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
// eip options: START
The Sample EIP supports 3 options which are listed below:

[width="100%",cols="2,5,^1,2",options="header"]
|===
| 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
|===
// eip options: END


== 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:

[source,java]
----
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:

[source,xml]
----
<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
[source,xml]
----
<route>
    <from uri="direct:sample"/>
    <!-- will by default use 1 second period -->
    <sample>
        <to uri="mock:result"/>
    </sample>
</route>
----
