diff --git a/exporter/awscloudwatchlogsexporter/exporter.go b/exporter/awscloudwatchlogsexporter/exporter.go index ad97567e72b0..89073d6b2eb8 100644 --- a/exporter/awscloudwatchlogsexporter/exporter.go +++ b/exporter/awscloudwatchlogsexporter/exporter.go @@ -16,6 +16,7 @@ package awscloudwatchlogsexporter // import "github.com/open-telemetry/opentelem import ( "context" + "encoding/hex" "encoding/json" "errors" "time" @@ -192,10 +193,10 @@ func logToCWLog(resourceAttrs map[string]interface{}, log plog.LogRecord) (*clou Flags: uint32(log.Flags()), } if traceID := log.TraceID(); !traceID.IsEmpty() { - body.TraceID = traceID.HexString() + body.TraceID = hex.EncodeToString(traceID[:]) } if spanID := log.SpanID(); !spanID.IsEmpty() { - body.SpanID = spanID.HexString() + body.SpanID = hex.EncodeToString(spanID[:]) } body.Attributes = attrsValue(log.Attributes()) body.Resource = resourceAttrs diff --git a/exporter/lokiexporter/legacy_exporter.go b/exporter/lokiexporter/legacy_exporter.go index 496ac51b079a..ccecc149125a 100644 --- a/exporter/lokiexporter/legacy_exporter.go +++ b/exporter/lokiexporter/legacy_exporter.go @@ -18,6 +18,7 @@ import ( "bufio" "bytes" "context" + "encoding/hex" "errors" "fmt" "io" @@ -337,14 +338,16 @@ func (l *lokiExporter) convertLogBodyToEntry(lr plog.LogRecord, res pcommon.Reso b.WriteString(strconv.Itoa(int(lr.SeverityNumber()))) b.WriteRune(' ') } - if _, ok := l.config.Labels.RecordAttributes["traceID"]; !ok && !lr.TraceID().IsEmpty() { + traceID := lr.TraceID() + if _, ok := l.config.Labels.RecordAttributes["traceID"]; !ok && !traceID.IsEmpty() { b.WriteString("traceID=") - b.WriteString(lr.TraceID().HexString()) + b.WriteString(hex.EncodeToString(traceID[:])) b.WriteRune(' ') } - if _, ok := l.config.Labels.RecordAttributes["spanID"]; !ok && !lr.SpanID().IsEmpty() { + spanID := lr.SpanID() + if _, ok := l.config.Labels.RecordAttributes["spanID"]; !ok && !spanID.IsEmpty() { b.WriteString("spanID=") - b.WriteString(lr.SpanID().HexString()) + b.WriteString(hex.EncodeToString(spanID[:])) b.WriteRune(' ') } diff --git a/exporter/mezmoexporter/exporter.go b/exporter/mezmoexporter/exporter.go index 39f0091d9333..7fadfb2cc2ad 100644 --- a/exporter/mezmoexporter/exporter.go +++ b/exporter/mezmoexporter/exporter.go @@ -16,6 +16,7 @@ package mezmoexporter // import "github.com/open-telemetry/opentelemetry-collect import ( "context" + "encoding/hex" "encoding/json" "fmt" "io" @@ -102,14 +103,12 @@ func (m *mezmoExporter) logDataToMezmo(ld plog.Logs) error { attrs["hostname"] = resourceHostName.AsString() } - traceID := log.TraceID().HexString() - if traceID != "" { - attrs["trace.id"] = traceID + if traceID := log.TraceID(); !traceID.IsEmpty() { + attrs["trace.id"] = hex.EncodeToString(traceID[:]) } - spanID := log.SpanID().HexString() - if spanID != "" { - attrs["span.id"] = spanID + if spanID := log.SpanID(); !spanID.IsEmpty() { + attrs["span.id"] = hex.EncodeToString(spanID[:]) } log.Attributes().Range(func(k string, v pcommon.Value) bool { diff --git a/exporter/skywalkingexporter/logrecord_to_logdata.go b/exporter/skywalkingexporter/logrecord_to_logdata.go index 94e261b928a2..1693d8a6e869 100644 --- a/exporter/skywalkingexporter/logrecord_to_logdata.go +++ b/exporter/skywalkingexporter/logrecord_to_logdata.go @@ -15,6 +15,7 @@ package skywalkingexporter // import "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/skywalkingexporter" import ( + "encoding/hex" "strconv" "time" @@ -141,14 +142,14 @@ func mapLogRecordToLogData(lr plog.LogRecord, logData *logpb.LogData) { }) } - if traceID := lr.TraceID().HexString(); traceID != "" { - logData.TraceContext = &logpb.TraceContext{TraceId: traceID} + if traceID := lr.TraceID(); !traceID.IsEmpty() { + logData.TraceContext = &logpb.TraceContext{TraceId: hex.EncodeToString(traceID[:])} } - if spanID := lr.SpanID().HexString(); spanID != "" { + if spanID := lr.SpanID(); !spanID.IsEmpty() { logData.Tags.Data = append(logData.Tags.Data, &common.KeyStringValuePair{ Key: spanIDField, - Value: spanID, + Value: hex.EncodeToString(spanID[:]), }) } } diff --git a/pkg/translator/loki/encode.go b/pkg/translator/loki/encode.go index 8708eb7b6bc9..f474adbc31c9 100644 --- a/pkg/translator/loki/encode.go +++ b/pkg/translator/loki/encode.go @@ -15,6 +15,7 @@ package loki // import "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/loki" import ( + "encoding/hex" "encoding/json" "fmt" "strings" @@ -70,14 +71,12 @@ func Encode(lr plog.LogRecord, res pcommon.Resource) (string, error) { func EncodeLogfmt(lr plog.LogRecord, res pcommon.Resource) (string, error) { keyvals := bodyToKeyvals(lr.Body()) - traceID := lr.TraceID().HexString() - if traceID != "" { - keyvals = keyvalsReplaceOrAppend(keyvals, "traceID", traceID) + if traceID := lr.TraceID(); !traceID.IsEmpty() { + keyvals = keyvalsReplaceOrAppend(keyvals, "traceID", hex.EncodeToString(traceID[:])) } - spanID := lr.SpanID().HexString() - if spanID != "" { - keyvals = keyvalsReplaceOrAppend(keyvals, "spanID", spanID) + if spanID := lr.SpanID(); !spanID.IsEmpty() { + keyvals = keyvalsReplaceOrAppend(keyvals, "spanID", hex.EncodeToString(spanID[:])) } severity := lr.SeverityText() diff --git a/pkg/translator/prometheusremotewrite/helper.go b/pkg/translator/prometheusremotewrite/helper.go index 09446331b80f..9fe5c1790a6b 100644 --- a/pkg/translator/prometheusremotewrite/helper.go +++ b/pkg/translator/prometheusremotewrite/helper.go @@ -15,6 +15,7 @@ package prometheusremotewrite // import "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite" import ( + "encoding/hex" "fmt" "log" "math" @@ -364,8 +365,8 @@ func getPromExemplars(pt pmetric.HistogramDataPoint) []prompb.Exemplar { Value: exemplar.DoubleValue(), Timestamp: timestamp.FromTime(exemplar.Timestamp().AsTime()), } - if !exemplar.TraceID().IsEmpty() { - val := exemplar.TraceID().HexString() + if traceID := exemplar.TraceID(); !traceID.IsEmpty() { + val := hex.EncodeToString(traceID[:]) exemplarRunes += utf8.RuneCountInString(traceIDKey) + utf8.RuneCountInString(val) promLabel := prompb.Label{ Name: traceIDKey, @@ -373,8 +374,8 @@ func getPromExemplars(pt pmetric.HistogramDataPoint) []prompb.Exemplar { } promExemplar.Labels = append(promExemplar.Labels, promLabel) } - if !exemplar.SpanID().IsEmpty() { - val := exemplar.SpanID().HexString() + if spanID := exemplar.SpanID(); !spanID.IsEmpty() { + val := hex.EncodeToString(spanID[:]) exemplarRunes += utf8.RuneCountInString(spanIDKey) + utf8.RuneCountInString(val) promLabel := prompb.Label{ Name: spanIDKey,