Skip to content

Commit

Permalink
Make journald emit map[string]interface{}
Browse files Browse the repository at this point in the history
  • Loading branch information
camdencheek committed Jul 20, 2020
1 parent 89dbd2e commit 0e9c0ff
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
16 changes: 13 additions & 3 deletions plugin/builtin/input/journald.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ func (plugin *JournaldInput) Start() error {
}

func (plugin *JournaldInput) parseJournalEntry(line []byte) (*entry.Entry, string, error) {
var record map[string]string
var record map[string]interface{}
err := plugin.json.Unmarshal(line, &record)
if err != nil {
return nil, "", err
Expand All @@ -173,7 +173,12 @@ func (plugin *JournaldInput) parseJournalEntry(line []byte) (*entry.Entry, strin
return nil, "", errors.New("journald record missing __REALTIME_TIMESTAMP field")
}

timestampInt, err := strconv.ParseInt(timestamp, 10, 64)
timestampString, ok := timestamp.(string)
if !ok {
return nil, "", errors.New("journald field for timestamp is not a string")
}

timestampInt, err := strconv.ParseInt(timestampString, 10, 64)
if err != nil {
return nil, "", fmt.Errorf("parse timestamp: %s", err)
}
Expand All @@ -185,9 +190,14 @@ func (plugin *JournaldInput) parseJournalEntry(line []byte) (*entry.Entry, strin
return nil, "", errors.New("journald record missing __CURSOR field")
}

cursorString, ok := cursor.(string)
if !ok {
return nil, "", errors.New("journald field for cursor is not a string")
}

entry := plugin.NewEntry(record)
entry.Timestamp = time.Unix(0, timestampInt*1000) // in microseconds
return entry, cursor, nil
return entry, cursorString, nil
}

func (plugin *JournaldInput) syncOffsets() {
Expand Down
2 changes: 1 addition & 1 deletion plugin/builtin/input/journald_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ func TestInputJournald(t *testing.T) {
err = journaldInput.Start()
require.NoError(t, err)

expected := map[string]string{
expected := map[string]interface{}{
"_BOOT_ID": "c4fa36de06824d21835c05ff80c54468",
"_CAP_EFFECTIVE": "0",
"_TRANSPORT": "journal",
Expand Down

0 comments on commit 0e9c0ff

Please sign in to comment.