amazon-kinesis-producer: (AWSErrorMarshaller)Encountered AWSError InvalidParameterValue from KPL

We are seeing high rate of these errors in our logs. Our service uses KPL to send data to a kinesis stream.

cls:	 com.amazonaws.services.kinesis.producer.LogInputStreamReader	
  	 lvl:	 WARN	
  	 msg:	 [2018-03-19 20:38:32.453622] [0x000007c0][0x00007fcb85bde700] [warning] [AWS Log: WARN](AWSErrorMarshaller)Encountered AWSError
InvalidParameterValue
The parameter MetricData.member.3.StatisticValues.Maximum must be greater than MetricData.member.3.StatisticValues.Minimum.
The parameter MetricData.member.6.StatisticValues.Maximum must be greater than MetricData.member.6.StatisticValues.Minimum.
The parameter MetricData.member.9.StatisticValues.Maximum must be greater than MetricData.member.9.StatisticValues.Minimum.
The parameter MetricData.member.12.StatisticValues.Maximum must be greater than MetricData.member.12.StatisticValues.Minimum.
The parameter MetricData.member.15.StatisticValues.Maximum must be greater than MetricData.member.15.StatisticValues.Minimum.:

Any idea why this is happening?

About this issue

  • Original URL
  • State: open
  • Created 6 years ago
  • Reactions: 4
  • Comments: 18 (2 by maintainers)

Most upvoted comments

This issue has been open for more than 2 years now and is still present in KPL 0.14. Can we have an update please? It’s very frustrating to roll out the AWS recommended method for publishing to Kinesis across a couple dozen services and then have this pop up all over the place at random times triggering alerts. I understand there’s a workaround, but asking your clients to go around disabling your error logs as a permanent solution is not a great look.

Thank you to everyone for sharing your experiances with this log message. While we work to prioritize addressing the underlying problem that is causing these logs, you can attempt to remove these logs from making noise by using your SLF4J implementation filters:

Depending on your SLF4J implementation, you can try to add a logging adapter/filter to remove matching logs from getting output from their application.

Common SLF4J implementation examples:

For Logback: http://logback.qos.ch/manual/filters.html

<filter class="ch.qos.logback.core.filter.EvaluatorFilter">      
      <evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
        <expression>return message.contains("Maximum must be greater than MetricData");</expression>
      </evaluator>
      <OnMismatch>NEUTRAL</OnMismatch>
      <OnMatch>DENY</OnMatch>
    </filter>

For log4j 2: https://logging.apache.org/log4j/2.0/manual/filters.html

<RegexFilter regex=“.Maximum must be greater than MetricData.” onMatch=“DENY” onMismatch=“ACCEPT”/>`

@avahuang0429 is this going to be fixed in a not-too-distant future?

same issue here… Is there any update on this issue ? Funny part is you are producing error logs because of your faults and charging it to us as a cloudwatch log cost…