Skip to content

Commit

Permalink
Incorporate changes from prereq PR
Browse files Browse the repository at this point in the history
  • Loading branch information
ycombinator committed May 1, 2024
1 parent 0fa9353 commit d067b2e
Showing 1 changed file with 29 additions and 65 deletions.
94 changes: 29 additions & 65 deletions exporter/elasticsearchexporter/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,71 +89,20 @@ func (m *encodeModel) encodeLog(resource pcommon.Resource, record plog.LogRecord
func (m *encodeModel) encodeLogDefaultMode(resource pcommon.Resource, record plog.LogRecord, scope pcommon.InstrumentationScope) objmodel.Document {
var document objmodel.Document

switch m.mode {
case MappingECS:
if record.Timestamp() != 0 {
document.AddTimestamp("@timestamp", record.Timestamp())
} else {
document.AddTimestamp("@timestamp", record.ObservedTimestamp())
}

document.AddTraceID("trace.id", record.TraceID())
document.AddSpanID("span.id", record.SpanID())

if n := record.SeverityNumber(); n != plog.SeverityNumberUnspecified {
document.AddInt("event.severity", int64(record.SeverityNumber()))
}

document.AddString("log.level", record.SeverityText())

if record.Body().Type() == pcommon.ValueTypeStr {
document.AddAttribute("message", record.Body())
}

fieldMapper := func(k string) string {
switch k {
case "exception.type":
return "error.type"
case "exception.message":
return "error.message"
case "exception.stacktrace":
return "error.stack_trace"
default:
return k
}
}

resource.Attributes().Range(func(k string, v pcommon.Value) bool {
k = fieldMapper(k)
document.AddAttribute(k, v)
return true
})
scope.Attributes().Range(func(k string, v pcommon.Value) bool {
k = fieldMapper(k)
document.AddAttribute(k, v)
return true
})
record.Attributes().Range(func(k string, v pcommon.Value) bool {
k = fieldMapper(k)
document.AddAttribute(k, v)
return true
})
default:
docTimeStamp := record.Timestamp()
if docTimeStamp.AsTime().UnixNano() == 0 {
docTimeStamp = record.ObservedTimestamp()
}
document.AddTimestamp("@timestamp", docTimeStamp) // We use @timestamp in order to ensure that we can index if the default data stream logs template is used.
document.AddTraceID("TraceId", record.TraceID())
document.AddSpanID("SpanId", record.SpanID())
document.AddInt("TraceFlags", int64(record.Flags()))
document.AddString("SeverityText", record.SeverityText())
document.AddInt("SeverityNumber", int64(record.SeverityNumber()))
document.AddAttribute("Body", record.Body())
m.encodeAttributes(&document, record.Attributes())
document.AddAttributes("Resource", resource.Attributes())
document.AddAttributes("Scope", scopeToAttributes(scope))
docTimeStamp := record.Timestamp()
if docTimeStamp.AsTime().UnixNano() == 0 {
docTimeStamp = record.ObservedTimestamp()
}
document.AddTimestamp("@timestamp", docTimeStamp) // We use @timestamp in order to ensure that we can index if the default data stream logs template is used.
document.AddTraceID("TraceId", record.TraceID())
document.AddSpanID("SpanId", record.SpanID())
document.AddInt("TraceFlags", int64(record.Flags()))
document.AddString("SeverityText", record.SeverityText())
document.AddInt("SeverityNumber", int64(record.SeverityNumber()))
document.AddAttribute("Body", record.Body())
m.encodeAttributes(&document, record.Attributes())
document.AddAttributes("Resource", resource.Attributes())
document.AddAttributes("Scope", scopeToAttributes(scope))

if m.dedup {
document.Dedup()
Expand All @@ -179,7 +128,11 @@ func (m *encodeModel) encodeLogECSMode(resource pcommon.Resource, record plog.Lo

// Finally, try to map record-level attributes to ECS fields.
recordAttrsConversionMap := map[string]string{
"event.name": "event.action",
"event.name": "event.action",
semconv.AttributeExceptionMessage: "error.message",
semconv.AttributeExceptionStacktrace: "error.stacktrace",
semconv.AttributeExceptionType: "error.type",
semconv.AttributeExceptionEscaped: "event.error.exception.handled",
}
encodeLogAttributesECSMode(&document, record.Attributes(), recordAttrsConversionMap)

Expand All @@ -188,6 +141,17 @@ func (m *encodeModel) encodeLogECSMode(resource pcommon.Resource, record plog.Lo
encodeLogAgentVersionECSMode(&document, resource)
encodeLogHostOsTypeECSMode(&document, resource)
encodeLogTimestampECSMode(&document, record)
document.AddTraceID("trace.id", record.TraceID())
document.AddSpanID("span.id", record.SpanID())
if n := record.SeverityNumber(); n != plog.SeverityNumberUnspecified {
document.AddInt("event.severity", int64(record.SeverityNumber()))
}

document.AddString("log.level", record.SeverityText())

if record.Body().Type() == pcommon.ValueTypeStr {
document.AddAttribute("message", record.Body())
}

return document
}
Expand Down

0 comments on commit d067b2e

Please sign in to comment.