Do not add invalid timestamps to kafka messages (#6908)

This commit is contained in:
Daniel Nelson 2020-01-15 15:26:50 -08:00 committed by GitHub
parent 68925ed1ef
commit f6b302621e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 3 deletions

View File

@ -5,6 +5,7 @@ import (
"fmt"
"log"
"strings"
"time"
"github.com/Shopify/sarama"
"github.com/gofrs/uuid"
@ -21,6 +22,8 @@ var ValidTopicSuffixMethods = []string{
"tags",
}
var zeroTime = time.Unix(0, 0)
type (
Kafka struct {
Brokers []string
@ -344,9 +347,13 @@ func (k *Kafka) Write(metrics []telegraf.Metric) error {
}
m := &sarama.ProducerMessage{
Topic: k.GetTopicName(metric),
Value: sarama.ByteEncoder(buf),
Timestamp: metric.Time(),
Topic: k.GetTopicName(metric),
Value: sarama.ByteEncoder(buf),
}
// Negative timestamps are not allowed by the Kafka protocol.
if !metric.Time().Before(zeroTime) {
m.Timestamp = metric.Time()
}
key, err := k.routingKey(metric)