Document and add support to input plugins for logging alias (#6357)

This commit is contained in:
Greg
2019-09-23 16:39:50 -06:00
committed by Daniel Nelson
parent e42d2e39c6
commit 817c9a69a9
111 changed files with 961 additions and 659 deletions

View File

@@ -4,7 +4,6 @@ package logparser
import (
"fmt"
"log"
"strings"
"sync"
@@ -14,7 +13,6 @@ import (
"github.com/influxdata/telegraf/internal/globpath"
"github.com/influxdata/telegraf/plugins/inputs"
"github.com/influxdata/telegraf/plugins/parsers"
// Parsers
)
const (
@@ -48,6 +46,8 @@ type LogParserPlugin struct {
FromBeginning bool
WatchMethod string
Log telegraf.Logger
tailers map[string]*tail.Tail
offsets map[string]int64
lines chan logEntry
@@ -207,7 +207,7 @@ func (l *LogParserPlugin) tailNewfiles(fromBeginning bool) error {
for _, filepath := range l.Files {
g, err := globpath.Compile(filepath)
if err != nil {
log.Printf("E! [inputs.logparser] Error Glob %s failed to compile, %s", filepath, err)
l.Log.Errorf("Glob %q failed to compile: %s", filepath, err)
continue
}
files := g.Match()
@@ -221,7 +221,7 @@ func (l *LogParserPlugin) tailNewfiles(fromBeginning bool) error {
var seek *tail.SeekInfo
if !fromBeginning {
if offset, ok := l.offsets[file]; ok {
log.Printf("D! [inputs.tail] using offset %d for file: %v", offset, file)
l.Log.Debugf("Using offset %d for file: %v", offset, file)
seek = &tail.SeekInfo{
Whence: 0,
Offset: offset,
@@ -248,7 +248,7 @@ func (l *LogParserPlugin) tailNewfiles(fromBeginning bool) error {
continue
}
log.Printf("D! [inputs.logparser] tail added for file: %v", file)
l.Log.Debugf("Tail added for file: %v", file)
// create a goroutine for each "tailer"
l.wg.Add(1)
@@ -269,7 +269,7 @@ func (l *LogParserPlugin) receiver(tailer *tail.Tail) {
for line = range tailer.Lines {
if line.Err != nil {
log.Printf("E! [inputs.logparser] Error tailing file %s, Error: %s",
l.Log.Errorf("Error tailing file %s, Error: %s",
tailer.Filename, line.Err)
continue
}
@@ -315,7 +315,7 @@ func (l *LogParserPlugin) parser() {
l.acc.AddFields(m.Name(), m.Fields(), tags, m.Time())
}
} else {
log.Println("E! [inputs.logparser] Error parsing log line: " + err.Error())
l.Log.Errorf("Error parsing log line: %s", err.Error())
}
}
@@ -332,7 +332,7 @@ func (l *LogParserPlugin) Stop() {
offset, err := t.Tell()
if err == nil {
l.offsets[t.Filename] = offset
log.Printf("D! [inputs.logparser] recording offset %d for file: %v", offset, t.Filename)
l.Log.Debugf("Recording offset %d for file: %v", offset, t.Filename)
} else {
l.acc.AddError(fmt.Errorf("error recording offset for file %s", t.Filename))
}
@@ -340,10 +340,10 @@ func (l *LogParserPlugin) Stop() {
err := t.Stop()
//message for a stopped tailer
log.Printf("D! [inputs.logparser] tail dropped for file: %v", t.Filename)
l.Log.Debugf("Tail dropped for file: %v", t.Filename)
if err != nil {
log.Printf("E! [inputs.logparser] Error stopping tail on file %s", t.Filename)
l.Log.Errorf("Error stopping tail on file %s", t.Filename)
}
}
close(l.done)

View File

@@ -14,6 +14,7 @@ import (
func TestStartNoParsers(t *testing.T) {
logparser := &LogParserPlugin{
Log: testutil.Logger{},
FromBeginning: true,
Files: []string{"testdata/*.log"},
}
@@ -26,6 +27,7 @@ func TestGrokParseLogFilesNonExistPattern(t *testing.T) {
thisdir := getCurrentDir()
logparser := &LogParserPlugin{
Log: testutil.Logger{},
FromBeginning: true,
Files: []string{thisdir + "testdata/*.log"},
GrokConfig: GrokConfig{
@@ -43,6 +45,7 @@ func TestGrokParseLogFiles(t *testing.T) {
thisdir := getCurrentDir()
logparser := &LogParserPlugin{
Log: testutil.Logger{},
GrokConfig: GrokConfig{
MeasurementName: "logparser_grok",
Patterns: []string{"%{TEST_LOG_A}", "%{TEST_LOG_B}"},
@@ -89,6 +92,7 @@ func TestGrokParseLogFilesAppearLater(t *testing.T) {
thisdir := getCurrentDir()
logparser := &LogParserPlugin{
Log: testutil.Logger{},
FromBeginning: true,
Files: []string{emptydir + "/*.log"},
GrokConfig: GrokConfig{
@@ -128,6 +132,7 @@ func TestGrokParseLogFilesOneBad(t *testing.T) {
thisdir := getCurrentDir()
logparser := &LogParserPlugin{
Log: testutil.Logger{},
FromBeginning: true,
Files: []string{thisdir + "testdata/test_a.log"},
GrokConfig: GrokConfig{