KinesisInputDStream currently does not provide a way to disable CloudWatch metrics push. Kinesis client library (KCL) which is used under the hood provide the ability through `withMetrics` methods.
To make things worse the default level is "DETAILED" which pushes 10s of metrics every 10 seconds. When dealing with multiple streaming jobs this add up pretty quickly, leading to thousands of dollar in cost.
Exposing a way to disable/set the proper level of monitoring is critical to us. We had to send invalid credentials and suppress log as a less-than-ideal workaround : see https://stackoverflow.com/questions/41811039/disable-cloudwatch-for-aws-kinesis-at-spark-streaming/55599002#55599002