fix: correctly set ASCII trailer for syslog output (#10393)
This commit is contained in:
parent
f59bdf9f10
commit
bccecef13b
|
|
@ -219,7 +219,11 @@ func (s *Syslog) getSyslogMessageBytesWithFraming(msg *rfc5424.SyslogMessage) ([
|
||||||
return append([]byte(strconv.Itoa(len(msgBytes))+" "), msgBytes...), nil
|
return append([]byte(strconv.Itoa(len(msgBytes))+" "), msgBytes...), nil
|
||||||
}
|
}
|
||||||
// Non-transparent framing
|
// Non-transparent framing
|
||||||
return append(msgBytes, byte(s.Trailer)), nil
|
trailer, err := s.Trailer.Value()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return append(msgBytes, byte(trailer)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Syslog) initializeSyslogMapper() {
|
func (s *Syslog) initializeSyslogMapper() {
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import (
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
|
"github.com/influxdata/go-syslog/v3/nontransparent"
|
||||||
"github.com/influxdata/telegraf"
|
"github.com/influxdata/telegraf"
|
||||||
framing "github.com/influxdata/telegraf/internal/syslog"
|
framing "github.com/influxdata/telegraf/internal/syslog"
|
||||||
"github.com/influxdata/telegraf/metric"
|
"github.com/influxdata/telegraf/metric"
|
||||||
|
|
@ -58,6 +59,31 @@ func TestGetSyslogMessageWithFramingNonTransparent(t *testing.T) {
|
||||||
messageBytesWithFraming, err := s.getSyslogMessageBytesWithFraming(syslogMessage)
|
messageBytesWithFraming, err := s.getSyslogMessageBytesWithFraming(syslogMessage)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
require.Equal(t, "<13>1 2010-11-10T23:00:00Z testhost Telegraf - testmetric -\n", string(messageBytesWithFraming), "Incorrect Octect counting framing")
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGetSyslogMessageWithFramingNonTransparentNul(t *testing.T) {
|
||||||
|
// Init plugin
|
||||||
|
s := newSyslog()
|
||||||
|
s.initializeSyslogMapper()
|
||||||
|
s.Framing = framing.NonTransparent
|
||||||
|
s.Trailer = nontransparent.NUL
|
||||||
|
|
||||||
|
// Init metrics
|
||||||
|
m1 := metric.New(
|
||||||
|
"testmetric",
|
||||||
|
map[string]string{
|
||||||
|
"hostname": "testhost",
|
||||||
|
},
|
||||||
|
map[string]interface{}{},
|
||||||
|
time.Date(2010, time.November, 10, 23, 0, 0, 0, time.UTC),
|
||||||
|
)
|
||||||
|
|
||||||
|
syslogMessage, err := s.mapper.MapMetricToSyslogMessage(m1)
|
||||||
|
require.NoError(t, err)
|
||||||
|
messageBytesWithFraming, err := s.getSyslogMessageBytesWithFraming(syslogMessage)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
require.Equal(t, "<13>1 2010-11-10T23:00:00Z testhost Telegraf - testmetric -\x00", string(messageBytesWithFraming), "Incorrect Octect counting framing")
|
require.Equal(t, "<13>1 2010-11-10T23:00:00Z testhost Telegraf - testmetric -\x00", string(messageBytesWithFraming), "Incorrect Octect counting framing")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue