Skip to content

Commit 0062ec3

Browse files
문민규문민규
문민규
authored and
문민규
committed
spring-projectsGH-241: Support changing metrics-level for KclMessageDrivenChannelAdapter
1 parent a82a0b6 commit 0062ec3

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/main/java/org/springframework/integration/aws/inbound/kinesis/KclMessageDrivenChannelAdapter.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@
5050
import software.amazon.kinesis.lifecycle.events.ProcessRecordsInput;
5151
import software.amazon.kinesis.lifecycle.events.ShardEndedInput;
5252
import software.amazon.kinesis.lifecycle.events.ShutdownRequestedInput;
53+
import software.amazon.kinesis.metrics.MetricsConfig;
54+
import software.amazon.kinesis.metrics.MetricsLevel;
5355
import software.amazon.kinesis.processor.FormerStreamsLeasesDeletionStrategy;
5456
import software.amazon.kinesis.processor.MultiStreamTracker;
5557
import software.amazon.kinesis.processor.RecordProcessorCheckpointer;
@@ -145,6 +147,8 @@ public class KclMessageDrivenChannelAdapter extends MessageProducerSupport
145147

146148
private volatile Scheduler scheduler;
147149

150+
private MetricsLevel metricsLevel = MetricsLevel.DETAILED;
151+
148152
public KclMessageDrivenChannelAdapter(String... streams) {
149153
this(KinesisAsyncClient.create(), CloudWatchAsyncClient.create(), DynamoDbAsyncClient.create(), streams);
150154
}
@@ -267,6 +271,15 @@ public void setFanOut(boolean fanOut) {
267271
this.fanOut = fanOut;
268272
}
269273

274+
/**
275+
* Specify a metrics level to emit (DETAILED; default).
276+
* @param metricsLevel {@link MetricsLevel} DETAILED for emitting all metrics.
277+
* @author Minkyu Moon
278+
*/
279+
public void setMetricsLevel(MetricsLevel metricsLevel) {
280+
this.metricsLevel = metricsLevel;
281+
}
282+
270283
@Override
271284
protected void onInit() {
272285
super.onInit();
@@ -321,13 +334,18 @@ protected void doStart() {
321334
.glueSchemaRegistryDeserializer(this.glueSchemaRegistryDeserializer)
322335
.retrievalSpecificConfig(retrievalSpecificConfig);
323336

337+
MetricsConfig metricsConfig = this.config.metricsConfig();
338+
if(this.metricsLevel != null) {
339+
metricsConfig.metricsLevel(this.metricsLevel);
340+
}
341+
324342
this.scheduler =
325343
new Scheduler(
326344
this.config.checkpointConfig(),
327345
this.config.coordinatorConfig(),
328346
this.config.leaseManagementConfig(),
329347
lifecycleConfig,
330-
this.config.metricsConfig(),
348+
metricsConfig,
331349
this.config.processorConfig(),
332350
retrievalConfig);
333351

0 commit comments

Comments
 (0)