Skip to content

Commit 5c7144c

Browse files
committed
feat(otel-2647): add timestamps to span
1 parent faea14e commit 5c7144c

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

receiver/datadogrumreceiver/internal/translator/rum_translator_traces.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"fmt"
88
"net/http"
99

10+
"go.opentelemetry.io/collector/pdata/pcommon"
1011
"go.opentelemetry.io/collector/pdata/ptrace"
1112
semconv "go.opentelemetry.io/collector/semconv/v1.5.0"
1213
"go.uber.org/zap"
@@ -43,10 +44,32 @@ func ToTraces(logger *zap.Logger, payload map[string]any, req *http.Request, req
4344
}
4445
newSpan.SetTraceID(traceID)
4546
newSpan.SetSpanID(spanID)
47+
newSpan.Attributes().PutStr("operation.name", "rum")
4648

4749
flatPayload := flattenJSON(payload)
4850

51+
setDateForSpan(payload, newSpan)
4952
setAttributes(flatPayload, newSpan.Attributes())
5053

5154
return results
5255
}
56+
57+
func setDateForSpan(payload map[string]any, span ptrace.Span) {
58+
date, ok := payload["date"]
59+
if !ok {
60+
return
61+
}
62+
dateFloat, ok := date.(float64)
63+
if !ok {
64+
return
65+
}
66+
dateNanoseconds := uint64(dateFloat) * 1e6
67+
68+
duration, ok := payload["resource"].(map[string]any)["duration"].(float64)
69+
if !ok {
70+
return
71+
}
72+
73+
span.SetStartTimestamp(pcommon.Timestamp(dateNanoseconds))
74+
span.SetEndTimestamp(pcommon.Timestamp(dateNanoseconds + uint64(duration)))
75+
}

0 commit comments

Comments
 (0)