This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 38288385dda Update sample eip docs (#17957)
38288385dda is described below

commit 38288385dda7d0dd9813dfdb347a0459ec8a3e14
Author: thomas-gantenbein-tga 
<32908492+thomas-gantenbein-...@users.noreply.github.com>
AuthorDate: Sun May 4 13:14:16 2025 +0200

    Update sample eip docs (#17957)
---
 .../main/docs/modules/eips/images/eip/Sample.png   | Bin 0 -> 10165 bytes
 .../main/docs/modules/eips/pages/sample-eip.adoc   |  53 ++++++++++++++++++---
 2 files changed, 47 insertions(+), 6 deletions(-)

diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/images/eip/Sample.png 
b/core/camel-core-engine/src/main/docs/modules/eips/images/eip/Sample.png
new file mode 100644
index 00000000000..26e351805f1
Binary files /dev/null and 
b/core/camel-core-engine/src/main/docs/modules/eips/images/eip/Sample.png differ
diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/sample-eip.adoc 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/sample-eip.adoc
index d483c5e700d..6c80afd2fb5 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/sample-eip.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/sample-eip.adoc
@@ -2,17 +2,16 @@
 :doctitle: Sample
 :shortname: sample
 :description: Extract a sample of the messages passing through a route
-:since: 
+:since:
 :supportlevel: Stable
 :tabs-sync-option:
 
 A sampling throttler allows you to extract a sample of the exchanges from the 
traffic through a route.
 
-image::eip/WireTap.gif[image]
+image::eip/Sample.png[image]
 
-The Sample EIP works similar to a wire tap, but instead of tapping every 
message, the sampling will
-select a single message in a given time period. This selected message is 
allowed to pass through,
-and all other messages are stopped.
+The Sample EIP selects a single message in a given time period or every nth 
message.
+This selected message is allowed to pass through, and all other messages are 
stopped.
 
 == Options
 // eip options: START
@@ -65,7 +64,7 @@ Java::
 [source,java]
 ----
 from("direct:sample")
-    .sample(5, TimeUnit.SECONDS)
+    .sample(Duration.of(5, ChronoUnit.SECONDS))
     .to("direct:sampled");
 ----
 
@@ -109,3 +108,45 @@ XML::
 </route>
 ----
 ====
+
+=== Sampling with wiretap
+
+The sampling throttler will stop all exchanges not included in the sample. 
This may be undesirable if you want to
+perform custom processing on the sample while still allowing all 10 messages 
to flow to an endpoint after the sample EIP.
+
+For this use case, you can combine the sample EIP with wiretap EIP. In the 
example below, we sample every 10th message
+and send it to direct:sampleProcessing, while all 10 messages are still sent 
to direct:regularProcessing.
+
+[tabs]
+====
+Java::
++
+[source,java]
+----
+from("direct:start")
+  .wireTap("direct:sample")
+  .to("direct:regularProcessing")
+
+from("direct:sample")
+  .sample(10)
+  .to("direct:sampleProcessing");
+----
+
+XML::
++
+[source,xml]
+----
+<route>
+    <from uri="direct:start"/>
+    <wireTap uri="direct:sample"/>
+    <to uri="direct:regularProcessing"/>
+</route>
+
+<route>
+    <from uri="direct:sample"/>
+    <sample messageFrequency="10"/>
+    <to uri="direct:sampleProcessing"/>
+</route>
+----
+====
+

Reply via email to