Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions exporter/collector/logs.go
Original file line number Diff line number Diff line change
Expand Up @@ -518,6 +518,14 @@ func (l logMapper) logToSplitEntries(
}
}

// Add OTLP event_name field as "event.name" label
if eventName := logRecord.EventName(); eventName != "" {
if entry.Labels == nil {
entry.Labels = make(map[string]string)
}
entry.Labels["event.name"] = eventName
}

// Handle map and bytes as JSON-structured logs if they are successfully converted.
switch logRecord.Body().Type() {
case pcommon.ValueTypeMap:
Expand Down
39 changes: 39 additions & 0 deletions exporter/collector/logs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -890,6 +890,45 @@ func TestLogMapping(t *testing.T) {
},
maxEntrySize: defaultMaxEntrySize,
},
{
name: "log with event_name",
mr: func() *monitoredrespb.MonitoredResource {
return nil
},
log: func() plog.LogRecord {
log := plog.NewLogRecord()
log.SetEventName("my.event")
return log
},
expectedEntries: []*logpb.LogEntry{
{
LogName: logName,
Timestamp: timestamppb.New(testObservedTime),
Labels: map[string]string{
"event.name": "my.event",
},
},
},
maxEntrySize: defaultMaxEntrySize,
},
{
name: "log with empty event_name",
mr: func() *monitoredrespb.MonitoredResource {
return nil
},
log: func() plog.LogRecord {
log := plog.NewLogRecord()
// event_name is empty by default
return log
},
expectedEntries: []*logpb.LogEntry{
{
LogName: logName,
Timestamp: timestamppb.New(testObservedTime),
},
},
maxEntrySize: defaultMaxEntrySize,
},
}

for _, testCase := range testCases {
Expand Down
Loading