Skip to content

Commit 3dd180b

Browse files
committed
Add ability to disable CloudWatch metric reportings (close #11)
1 parent 8cfaf17 commit 3dd180b

File tree

5 files changed

+25
-7
lines changed

5 files changed

+25
-7
lines changed

config/config.hocon.sample

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,15 @@
1616
# Either TRIM_HORIZON or LATEST
1717
"initialPosition": "TRIM_HORIZON"
1818

19-
# Use either enhanced fan out or polling mode for retrieving records
20-
"retrievalMode": "FanOut"
19+
# Optional, set the polling mode for retrieving records. Default is FanOut
20+
# "retrievalMode": "FanOut"
2121
# "retrievalMode": {
2222
# "type": "Polling"
2323
# "maxRecords": 1000
2424
# }
25+
26+
# Optional override to disable cloudwatch metrics
27+
# "disableCloudWatch": true
2528
}
2629

2730
"storage" : {
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
snowplow {
2-
input.retrievalMode = FAN_OUT
2+
input.retrievalMode = FanOut
3+
input.disableCloudWatch = false
34
}

modules/loader/src/main/scala/com/snowplowanalytics/snowplow/postgres/config/LoaderConfig.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,8 @@ object LoaderConfig {
107107
streamName: String,
108108
region: Region,
109109
initialPosition: InitPosition,
110-
retrievalMode: Kinesis.Retrieval) extends Source
110+
retrievalMode: Kinesis.Retrieval,
111+
disableCloudWatch: Boolean) extends Source
111112
case class PubSub(projectId: String, subscriptionId: String) extends Source
112113

113114
object Kinesis {

modules/loader/src/main/scala/com/snowplowanalytics/snowplow/postgres/streaming/source.scala

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import com.permutive.pubsub.consumer.decoder.MessageDecoder
4545
import software.amazon.awssdk.regions.Region
4646
import software.amazon.kinesis.common.ConfigsBuilder
4747
import software.amazon.kinesis.coordinator.Scheduler
48+
import software.amazon.kinesis.metrics.MetricsLevel
4849
import software.amazon.kinesis.processor.ShardRecordProcessorFactory
4950
import software.amazon.kinesis.retrieval.polling.PollingConfig
5051
import software.amazon.kinesis.retrieval.fanout.FanOutConfig
@@ -171,12 +172,16 @@ object source {
171172
}
172173
}
173174

175+
val metricsConfig = configsBuilder.metricsConfig.metricsLevel {
176+
if (config.disableCloudWatch) MetricsLevel.NONE else MetricsLevel.DETAILED
177+
}
178+
174179
new Scheduler(
175180
configsBuilder.checkpointConfig,
176181
configsBuilder.coordinatorConfig,
177182
configsBuilder.leaseManagementConfig,
178183
configsBuilder.lifecycleConfig,
179-
configsBuilder.metricsConfig,
184+
metricsConfig,
180185
configsBuilder.processorConfig,
181186
retrievalConfig
182187
)

modules/loader/src/test/scala/com.snowplowanalytics.snowplow.postgres/config/CliSpec.scala

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ import cats.effect.{Clock, IO}
1919

2020
import com.snowplowanalytics.snowplow.postgres.config.LoaderConfig.{InitPosition, Purpose, Source}
2121

22-
import org.specs2.mutable.Specification
2322
import software.amazon.awssdk.regions.Region
2423

24+
import org.specs2.mutable.Specification
25+
2526
class CliSpec extends Specification {
2627
implicit val ioClock: Clock[IO] = Clock.create[IO]
2728

@@ -34,7 +35,14 @@ class CliSpec extends Specification {
3435
val expected = LoaderConfig(
3536
"Acme Ltd. Snowplow Postgres",
3637
UUID.fromString("5c5e4353-4eeb-43da-98f8-2de6dc7fa947"),
37-
Source.Kinesis("acme-postgres-loader", "enriched-events", Region.EU_CENTRAL_1, InitPosition.TrimHorizon, Source.Kinesis.Retrieval.FanOut),
38+
Source.Kinesis(
39+
"acme-postgres-loader",
40+
"enriched-events",
41+
Region.EU_CENTRAL_1,
42+
InitPosition.TrimHorizon,
43+
Source.Kinesis.Retrieval.FanOut,
44+
false
45+
),
3846
DBConfig(
3947
"localhost",
4048
5432,

0 commit comments

Comments
 (0)