in cloudwatch/cloudwatch.go [508:545]
func (output *OutputPlugin) setGroupStreamNames(e *Event) {
// This happens here to avoid running Split more than once per log Event.
logTagSplit := strings.SplitN(e.Tag, ".", 10)
s := &sanitizer{sanitize: sanitizeGroup, buf: output.bufferPool.Get()}
if _, err := parseDataMapTags(e, logTagSplit, output.logGroupName, output.ecsMetadata, output.uuid, s); err != nil {
e.group = output.defaultLogGroupName
logrus.Errorf("[cloudwatch %d] parsing log_group_name template '%s' "+
"(using value of default_log_group_name instead): %v",
output.PluginInstanceID, output.logGroupName.String, err)
} else if e.group = s.buf.String(); len(e.group) == 0 {
e.group = output.defaultLogGroupName
} else if len(e.group) > maxGroupStreamLength {
e.group = e.group[:maxGroupStreamLength]
}
if output.logStreamPrefix != "" {
e.stream = output.logStreamPrefix + e.Tag
output.bufferPool.Put(s.buf)
return
}
s.sanitize = sanitizeStream
s.buf.Reset()
if _, err := parseDataMapTags(e, logTagSplit, output.logStreamName, output.ecsMetadata, output.uuid, s); err != nil {
e.stream = output.defaultLogStreamName
logrus.Errorf("[cloudwatch %d] parsing log_stream_name template '%s': %v",
output.PluginInstanceID, output.logStreamName.String, err)
} else if e.stream = s.buf.String(); len(e.stream) == 0 {
e.stream = output.defaultLogStreamName
} else if len(e.stream) > maxGroupStreamLength {
e.stream = e.stream[:maxGroupStreamLength]
}
output.bufferPool.Put(s.buf)
}