8.17. sampling

8.17.1. sampling Throttler

샘플링 throttler를 사용하면 경로를 통해 트래픽에서 교환 샘플을 추출할 수 있습니다. 단일 교환만 통과할 수 있는 샘플링 기간으로 구성됩니다. 다른 모든 교환은 중단될 것입니다.

기본적으로 샘플 기간은 1초입니다.

8.17.2. 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");

8.17.3. Spring XML 예

Spring XML에서 샘플 요소를 사용하여 sampler를 호출합니다. 여기서 samplePeriodunits 특성을 사용하여 샘플링 기간을 지정할 수 있습니다.

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

8.17.4. 옵션

샘플 DSL 명령은 다음 옵션을 지원합니다.

이름

기본값

설명

messageFrequency

 

N번째 메시지마다 메시지를 샘플링합니다. 빈도 또는 기간 중 하나만 사용할 수 있습니다.

samplePeriod

1

N번째 기간마다 메시지를 샘플링합니다. 빈도 또는 기간 중 하나만 사용할 수 있습니다.

단위

SECOND

JDK에서 java.util.concurrent.TimeUnit 의 시간 단위입니다.