Skip to content

Commit 67c474f

Browse files
committed
Small changes
1 parent dc1a49c commit 67c474f

File tree

8 files changed

+24
-10
lines changed

8 files changed

+24
-10
lines changed

config/config.kinesis.reference.hocon

+6
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
"maxRecords": 9999
3030

3131
# Region where the Kinesis stream is located
32+
# This field is optional if it can be resolved with AWS region provider chain.
33+
# It checks places like env variables, system properties, AWS profile file.
34+
# https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/regions/providers/DefaultAwsRegionProviderChain.html
3235
"region": "eu-central-1"
3336

3437
# Optional endpoint url configuration to override aws kinesis endpoints,
@@ -128,6 +131,9 @@
128131
"streamName": "test-kinesis-bad-stream"
129132

130133
# Region where the Kinesis stream is located
134+
# This field is optional if it can be resolved with AWS region provider chain.
135+
# It checks places like env variables, system properties, AWS profile file.
136+
# https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/regions/providers/DefaultAwsRegionProviderChain.html
131137
"region": "eu-central-1"
132138

133139
# Optional endpoint url configuration to override aws kinesis endpoints,

core/src/main/scala/com.snowplowanalytics.stream/loader/Config.scala

+8
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,14 @@ object Config {
187187
final case class RawConfigReaderFailure(description: String, origin: Option[ConfigOrigin] = None)
188188
extends ConfigReaderFailure
189189

190+
/**
191+
* All config implicits are put into case class because we want to make region config reader
192+
* changeable to write unit tests for config parsing.
193+
* Region config reader is special config reader because it allows Region types to be missing.
194+
* If they are missing, it tries to retrieve region with "DefaultAwsRegionProviderChain".
195+
* If it is also unsuccessful, it throws error. In the tests, it is changed with dummy config
196+
* reader in order to not use "DefaultAwsRegionProviderChain" during tests.
197+
*/
190198
case class implicits(
191199
regionConfigReader: ConfigReader[Region] with ReadsMissingKeys = new ConfigReader[Region]
192200
with ReadsMissingKeys {

core/src/main/scala/com.snowplowanalytics.stream/loader/executors/KinesisSourceExecutor.scala

+2-3
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,12 @@ import com.amazonaws.auth.DefaultAWSCredentialsProviderChain
4545
import com.snowplowanalytics.stream.loader.Config._
4646

4747
/**
48-
* Boilerplate class for Kinesis Conenector
49-
* @param streamLoaderConfig streamLoaderConfig
48+
* Boilerplate class for Kinesis Connector
5049
* @param kinesis queue settings
50+
* @param metrics metrics settings
5151
* @param kinesisConnectorPipeline kinesisConnectorPipeline
5252
*/
5353
class KinesisSourceExecutor[A, B](
54-
streamLoaderConfig: StreamLoaderConfig,
5554
kinesis: Source.Kinesis,
5655
metrics: Monitoring.Metrics,
5756
kinesisConnectorPipeline: IKinesisConnectorPipeline[A, B]

core/src/main/scala/com.snowplowanalytics.stream/loader/executors/NsqSourceExecutor.scala

-2
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,12 @@ import transformers.{BadEventTransformer, EnrichedEventJsonTransformer, JsonTran
4949
*
5050
* @param purpose kind of data stored, good, bad or plain-json
5151
* @param nsq Nsq NsqConfig
52-
* @param config ESLoader Configuration
5352
* @param goodSink the configured GoodSink
5453
* @param badSink the configured BadSink
5554
*/
5655
class NsqSourceExecutor(
5756
purpose: Purpose,
5857
nsq: Source.Nsq,
59-
config: StreamLoaderConfig,
6058
goodSink: Either[ISink, BulkSender[EmitterJsonInput]],
6159
badSink: ISink,
6260
shardDateField: Option[String],

core/src/main/scala/com.snowplowanalytics.stream/loader/sinks/KinesisSink.scala

+7-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ class KinesisSink(conf: KinesisSinkConfig) extends ISink {
5454
val client = AmazonKinesisClientBuilder
5555
.standard()
5656
.withCredentials(new DefaultAWSCredentialsProviderChain())
57-
.withRegion(conf.region.name)
57+
// Region should be set in the EndpointConfiguration when custom endpoint is used
58+
.condWith(conf.customEndpoint.isEmpty, _.withRegion(conf.region.name))
5859
.optWith[String](
5960
conf.customEndpoint,
6061
b => e => b.withEndpointConfiguration(new EndpointConfiguration(e, conf.region.name))
@@ -121,5 +122,10 @@ class KinesisSink(conf: KinesisSinkConfig) extends ISink {
121122
f: AmazonKinesisClientBuilder => A => AmazonKinesisClientBuilder
122123
): AmazonKinesisClientBuilder =
123124
opt.map(f(builder)).getOrElse(builder)
125+
def condWith[A](
126+
cond: => Boolean,
127+
f: AmazonKinesisClientBuilder => AmazonKinesisClientBuilder
128+
): AmazonKinesisClientBuilder =
129+
if (cond) f(builder) else builder
124130
}
125131
}

elasticsearch/src/main/scala/com/snowplowanalytics/stream/loader/ElasticsearchLoader.scala

-2
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ object ElasticsearchLoader {
8686
shardDateFormat
8787
)
8888
new KinesisSourceExecutor[ValidatedJsonRecord, EmitterJsonInput](
89-
config,
9089
c,
9190
config.monitoring.metrics,
9291
pipeline
@@ -97,7 +96,6 @@ object ElasticsearchLoader {
9796
new NsqSourceExecutor(
9897
config.purpose,
9998
c,
100-
config,
10199
goodSink,
102100
badSink,
103101
shardDateField,

elasticsearch/src/main/scala/com/snowplowanalytics/stream/loader/clients/ElasticsearchBulkSender.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ class ElasticsearchBulkSender(
148148
}
149149
} else Nil
150150

151-
log.info(s"Emitted ${esObjects.size - newFailures.size} records to Elasticseacrch")
151+
log.info(s"Emitted ${esObjects.size - newFailures.size} records to Elasticsearch")
152152
if (newFailures.nonEmpty) logHealth()
153153

154154
val allFailures = oldFailures ++ newFailures

elasticsearch/src/main/scala/com/snowplowanalytics/stream/loader/clients/SignedHttpClientConfigCallback.scala

-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ import com.snowplowanalytics.stream.loader.Config.Region
4444

4545
/**
4646
* Signs outgoing HTTP requests to AWS Elasticsearch service
47-
* @param credentialsProvider AWS credentials provider
4847
* @param region in which to sign the requests
4948
*/
5049
class SignedHttpClientConfigCallback(region: Region) extends HttpClientConfigCallback {

0 commit comments

Comments
 (0)