Skip to content

Commit

Permalink
KCL: metricsFactory to NullMetricsFactory if metrics level is NONE
Browse files Browse the repository at this point in the history
* GH-241: Support changing metrics-level for `KclMessageDrivenChannelAdapter`

* Add test that `metricsLevel` is set correctly

* Modify test body and add author

* Add reference to instance variable

* Set `metricsFactory` to `NullMetricsFactory` if metrics level is `NONE`
  • Loading branch information
Min3953 committed Apr 8, 2024
1 parent 428ea43 commit 6703813
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
import software.amazon.kinesis.lifecycle.events.ShutdownRequestedInput;
import software.amazon.kinesis.metrics.MetricsConfig;
import software.amazon.kinesis.metrics.MetricsLevel;
import software.amazon.kinesis.metrics.NullMetricsFactory;
import software.amazon.kinesis.processor.FormerStreamsLeasesDeletionStrategy;
import software.amazon.kinesis.processor.MultiStreamTracker;
import software.amazon.kinesis.processor.RecordProcessorCheckpointer;
Expand Down Expand Up @@ -338,6 +339,9 @@ protected void doStart() {

MetricsConfig metricsConfig = this.config.metricsConfig();
metricsConfig.metricsLevel(this.metricsLevel);
if (MetricsLevel.NONE.equals(this.metricsLevel)) {
metricsConfig.metricsFactory(new NullMetricsFactory());
}

this.scheduler =
new Scheduler(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@
import software.amazon.awssdk.services.kinesis.model.Consumer;
import software.amazon.kinesis.common.InitialPositionInStream;
import software.amazon.kinesis.common.InitialPositionInStreamExtended;
import software.amazon.kinesis.metrics.MetricsFactory;
import software.amazon.kinesis.metrics.MetricsLevel;
import software.amazon.kinesis.metrics.NullMetricsFactory;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
Expand Down Expand Up @@ -123,15 +125,25 @@ void kclChannelAdapterReceivesRecords() {
}

@Test
public void metricsLevelOfMetricsFactoryShouldBeSetToMetricsLevelOfAdapter() {
public void metricsLevelOfMetricsConfigShouldBeSetToMetricsLevelOfAdapter() {
MetricsLevel metricsLevel = TestUtils.getPropertyValue(
this.kclMessageDrivenChannelAdapter,
"scheduler.metricsFactory.metricsLevel",
"scheduler.metricsConfig.metricsLevel",
MetricsLevel.class
);
assertThat(metricsLevel).isEqualTo(MetricsLevel.NONE);
}

@Test
public void metricsFactoryOfSchedulerShouldBeSetNullMetricsFactoryIfMetricsLevelIsNone() {
MetricsFactory metricsFactory = TestUtils.getPropertyValue(
this.kclMessageDrivenChannelAdapter,
"scheduler.metricsFactory",
MetricsFactory.class
);
assertThat(metricsFactory).isInstanceOf(NullMetricsFactory.class);
}

@Configuration
@EnableIntegration
public static class TestConfiguration {
Expand Down

0 comments on commit 6703813

Please sign in to comment.