Skip to content

Commit

Permalink
[DebugExporter] Add EventName from LogRecord to output (#11967)
Browse files Browse the repository at this point in the history
#### Description
1. Adds event name from LogRecord to debug exporter.
2. Also modified the example config file to include logs too. (It only
had traces/metrics). Not really required for this change, but hope that
is okay to club into same PR!

#### Link to tracking issue
Fixes #11966 

#### Testing
Manually tested with Otel client that exported a LogRecord with event
name and without event name.

(1st time contributor here, still learning the process.)

---------

Co-authored-by: Trask Stalnaker <[email protected]>
Co-authored-by: Alex Boten <[email protected]>
  • Loading branch information
3 people authored Jan 9, 2025
1 parent 3132112 commit 12b0369
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 0 deletions.
25 changes: 25 additions & 0 deletions .chloggen/add-eventname-debug-exporter.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Use this changelog template to create an entry for release notes.

# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: enhancement

# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
component: debugexporter

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: "Add EventName to debug exporter for Logs. EventName was added as top-level field in the LogRecord from 1.5.0 of proto definition."

# One or more tracking issues or pull requests related to the change
issues: [11966]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext:

# Optional: The change log or logs in which this entry should be included.
# e.g. '[user]' or '[user, api]'
# Include 'user' if the change is relevant to end users.
# Include 'api' if there is a change to a library API.
# Default: '[user]'
change_logs: []
4 changes: 4 additions & 0 deletions examples/local/otel-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,9 @@ service:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [debug]
logs:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [debug]

extensions: [zpages]
3 changes: 3 additions & 0 deletions exporter/debugexporter/internal/otlptext/logs.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ func (textLogsMarshaler) MarshalLogs(ld plog.Logs) ([]byte, error) {
buf.logEntry("Timestamp: %s", lr.Timestamp())
buf.logEntry("SeverityText: %s", lr.SeverityText())
buf.logEntry("SeverityNumber: %s(%d)", lr.SeverityNumber(), lr.SeverityNumber())
if lr.EventName() != "" {
buf.logEntry("EventName: %s", lr.EventName())
}
buf.logEntry("Body: %s", valueToString(lr.Body()))
buf.logAttributes("Attributes", lr.Attributes())
buf.logEntry("Trace ID: %s", lr.TraceID())
Expand Down
19 changes: 19 additions & 0 deletions exporter/debugexporter/internal/otlptext/logs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,25 @@ func TestLogsText(t *testing.T) {
in: testdata.GenerateLogs(2),
out: "two_records.out",
},
{
name: "log_with_event_name",
in: func() plog.Logs {
ls := plog.NewLogs()
l := ls.ResourceLogs().AppendEmpty().ScopeLogs().AppendEmpty().LogRecords().AppendEmpty()
l.SetTimestamp(pcommon.NewTimestampFromTime(time.Date(2020, 2, 11, 20, 26, 13, 789, time.UTC)))
l.SetSeverityNumber(plog.SeverityNumberInfo)
l.SetSeverityText("Info")
l.SetEventName("event_name")
l.Body().SetStr("This is a log message")
attrs := l.Attributes()
attrs.PutStr("app", "server")
attrs.PutInt("instance_num", 1)
l.SetSpanID([8]byte{0x01, 0x02, 0x04, 0x08})
l.SetTraceID([16]byte{0x08, 0x04, 0x02, 0x01})
return ls
}(),
out: "log_with_event_name.out",
},
{
name: "logs_with_embedded_maps",
in: func() plog.Logs {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
ResourceLog #0
Resource SchemaURL:
ScopeLogs #0
ScopeLogs SchemaURL:
InstrumentationScope
LogRecord #0
ObservedTimestamp: 1970-01-01 00:00:00 +0000 UTC
Timestamp: 2020-02-11 20:26:13.000000789 +0000 UTC
SeverityText: Info
SeverityNumber: Info(9)
EventName: event_name
Body: Str(This is a log message)
Attributes:
-> app: Str(server)
-> instance_num: Int(1)
Trace ID: 08040201000000000000000000000000
Span ID: 0102040800000000
Flags: 0

0 comments on commit 12b0369

Please sign in to comment.