Skip to content

Commit 0da23a7

Browse files
committed
snapshots
Signed-off-by: Manik2708 <[email protected]>
1 parent 4bc50f1 commit 0da23a7

File tree

8 files changed

+218
-59
lines changed

8 files changed

+218
-59
lines changed

internal/storage/v2/elasticsearch/tracestore/fixtures/es_01.json

+19-14
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,16 @@
2424
"startTimeMillis": 1485467191639,
2525
"duration": 5,
2626
"tags": [
27+
{
28+
"key": "blob",
29+
"type": "binary",
30+
"value": "00003039"
31+
},
32+
{
33+
"key": "error",
34+
"type": "bool",
35+
"value": "true"
36+
},
2737
{
2838
"key": "otel.scope.name",
2939
"type": "string",
@@ -34,30 +44,20 @@
3444
"type": "string",
3545
"value": "1.1.1"
3646
},
37-
{
38-
"key": "peer.service",
39-
"type": "string",
40-
"value": "service-y"
41-
},
4247
{
4348
"key": "peer.ipv4",
4449
"type": "int64",
4550
"value": "23456"
4651
},
4752
{
48-
"key": "blob",
49-
"type": "binary",
50-
"value": "00003039"
53+
"key": "peer.service",
54+
"type": "string",
55+
"value": "service-y"
5156
},
5257
{
5358
"key": "temperature",
5459
"type": "float64",
5560
"value": "72.5"
56-
},
57-
{
58-
"key": "error",
59-
"type": "bool",
60-
"value": "true"
6161
}
6262
],
6363
"logs": [
@@ -91,9 +91,14 @@
9191
"serviceName": "service-x",
9292
"tags": [
9393
{
94-
"key": "sdk.version",
94+
"key": "sdk.version.1",
9595
"type": "string",
9696
"value": "1.2.1"
97+
},
98+
{
99+
"key": "sdk.version.2",
100+
"type": "binary",
101+
"value": "00003039"
97102
}
98103
]
99104
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
{
2+
"traceID": "00000000000000010000000000000000",
3+
"spanID": "0000000000000002",
4+
"flags": 1,
5+
"operationName": "test-general-conversion",
6+
"references": [
7+
{
8+
"refType": "CHILD_OF",
9+
"traceID": "00000000000000010000000000000000",
10+
"spanID": "0000000000000003"
11+
},
12+
{
13+
"refType": "FOLLOWS_FROM",
14+
"traceID": "00000000000000010000000000000000",
15+
"spanID": "0000000000000004"
16+
},
17+
{
18+
"refType": "CHILD_OF",
19+
"traceID": "00000000000000ff0000000000000000",
20+
"spanID": "00000000000000ff"
21+
}
22+
],
23+
"startTime": 1485467191639875,
24+
"startTimeMillis": 1485467191639,
25+
"duration": 5,
26+
"tags": [
27+
{
28+
"key": "blob",
29+
"type": "binary",
30+
"value": "00003039"
31+
}
32+
],
33+
"tag": {
34+
"error": true,
35+
"otel#scope#name": "testing-library",
36+
"otel#scope#version": "1.1.1",
37+
"peer#ipv4": 23456,
38+
"peer#service": "service-y",
39+
"temperature": 72.5
40+
},
41+
"logs": [
42+
{
43+
"timestamp": 1485467191639875,
44+
"fields": [
45+
{
46+
"key": "event",
47+
"type": "string",
48+
"value": "testing-event"
49+
},
50+
{
51+
"key": "event-x",
52+
"type": "string",
53+
"value": "event-y"
54+
}
55+
]
56+
},
57+
{
58+
"timestamp": 1485467191639875,
59+
"fields": [
60+
{
61+
"key": "x",
62+
"type": "string",
63+
"value": "y"
64+
}
65+
]
66+
}
67+
],
68+
"process": {
69+
"serviceName": "service-x",
70+
"tags": [
71+
{
72+
"key": "sdk.version.2",
73+
"type": "binary",
74+
"value": "00003039"
75+
}
76+
],
77+
"tag": {
78+
"sdk#version#1": "1.2.1"
79+
}
80+
}
81+
}

internal/storage/v2/elasticsearch/tracestore/fixtures/otel_traces_01.json

+15-9
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,16 @@
1010
}
1111
},
1212
{
13-
"key": "sdk.version",
13+
"key": "sdk.version.1",
1414
"value": {
1515
"stringValue": "1.2.1"
1616
}
17+
},
18+
{
19+
"key": "sdk.version.2",
20+
"value": {
21+
"bytesValue": "AAAwOQ=="
22+
}
1723
}
1824
]
1925
},
@@ -34,27 +40,27 @@
3440
"endTimeUnixNano": "1485467191639880000",
3541
"attributes": [
3642
{
37-
"key": "peer.service",
43+
"key": "blob",
3844
"value": {
39-
"stringValue": "service-y"
45+
"bytesValue": "AAAwOQ=="
4046
}
4147
},
4248
{
43-
"key": "peer.ipv4",
49+
"key": "temperature",
4450
"value": {
45-
"intValue": "23456"
51+
"doubleValue": 72.5
4652
}
4753
},
4854
{
49-
"key": "blob",
55+
"key": "peer.ipv4",
5056
"value": {
51-
"bytesValue": "AAAwOQ=="
57+
"intValue": "23456"
5258
}
5359
},
5460
{
55-
"key": "temperature",
61+
"key": "peer.service",
5662
"value": {
57-
"doubleValue": 72.5
63+
"stringValue": "service-y"
5864
}
5965
}
6066
],

internal/storage/v2/elasticsearch/tracestore/from_dbmodel_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,8 @@ func TestFromDbModel_Fixtures(t *testing.T) {
543543
unmarshaller := ptrace.JSONUnmarshaler{}
544544
expectedTd, err := unmarshaller.UnmarshalTraces(tracesData)
545545
require.NoError(t, err)
546-
spans := ToDBModel(expectedTd)
546+
toDb := NewToDBModel(false, nil, ".")
547+
spans := toDb.ConvertToDBModel(expectedTd)
547548
assert.Len(t, spans, 1)
548549
testSpans(t, spansData, spans[0])
549550
actualTd, err := FromDBModel(spans)

internal/storage/v2/elasticsearch/tracestore/tag_appender.go

+16-5
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package tracestore
55

66
import (
7+
"encoding/hex"
78
"strings"
89

910
"go.opentelemetry.io/collector/pdata/pcommon"
@@ -14,6 +15,7 @@ import (
1415
"github.com/jaegertracing/jaeger/internal/storage/elasticsearch/dbmodel"
1516
)
1617

18+
// tagAppender append tags to dbmodel KeyValue slice and tagsMap by replacing dots with tagDotReplacement
1719
type tagAppender struct {
1820
allTagsAsFields bool
1921
tagKeysAsFields map[string]bool
@@ -22,6 +24,7 @@ type tagAppender struct {
2224
tags []dbmodel.KeyValue
2325
}
2426

27+
// newTagAppender return an instance of tagAppender
2528
func newTagAppender(allTagsAsFields bool, tagKeysAsFields map[string]bool, tagDotReplacement string) *tagAppender {
2629
return &tagAppender{
2730
allTagsAsFields: allTagsAsFields,
@@ -46,10 +49,17 @@ func (t *tagAppender) appendTag(key string, val pcommon.Value) {
4649
if val.Type() != pcommon.ValueTypeBytes && (t.allTagsAsFields || t.tagKeysAsFields[key]) {
4750
t.tagsMap[strings.ReplaceAll(key, ".", t.tagDotReplacement)] = attributeToDbValue(val)
4851
} else {
49-
t.tags = append(t.tags, t.attributeToDbTag(key, val.Type(), val.AsString()))
52+
t.tags = append(t.tags, attributeToDbTag(key, val))
5053
}
5154
}
5255

56+
func getStringValue(val pcommon.Value) string {
57+
if val.Type() == pcommon.ValueTypeBytes {
58+
return hex.EncodeToString(val.Bytes().AsRaw())
59+
}
60+
return val.AsString()
61+
}
62+
5363
func (t *tagAppender) appendSpanKindTag(spanKind ptrace.SpanKind) {
5464
tagStr := getDbSpanKind(spanKind)
5565
if tagStr != "" {
@@ -69,7 +79,7 @@ func (t *tagAppender) appendInstrumentationLibraryTags(il pcommon.Instrumentatio
6979
func (t *tagAppender) appendStatusCodeTag(statusCode ptrace.StatusCode) {
7080
switch statusCode {
7181
case ptrace.StatusCodeError:
72-
t.appendTag(conventions.OtelStatusCode, pcommon.NewValueStr(statusError))
82+
t.appendTag(tagError, pcommon.NewValueBool(true))
7383
case ptrace.StatusCodeOk:
7484
t.appendTag(conventions.OtelStatusCode, pcommon.NewValueStr(statusOk))
7585
}
@@ -105,10 +115,11 @@ func getDbSpanKind(spanKind ptrace.SpanKind) string {
105115
}
106116
}
107117

108-
func (*tagAppender) attributeToDbTag(key string, tp pcommon.ValueType, value string) dbmodel.KeyValue {
118+
func attributeToDbTag(key string, value pcommon.Value) dbmodel.KeyValue {
119+
val := getStringValue(value)
120+
tp := attributeToDbType(value.Type())
109121
// TODO why are all values being converted to strings?
110-
tag := dbmodel.KeyValue{Key: key, Value: value}
111-
tag.Type = attributeToDbType(tp)
122+
tag := dbmodel.KeyValue{Key: key, Type: tp, Value: val}
112123
return tag
113124
}
114125

internal/storage/v2/elasticsearch/tracestore/tag_appender_test.go

+21-21
Original file line numberDiff line numberDiff line change
@@ -35,32 +35,32 @@ func TestAppendStatusCodeTag(t *testing.T) {
3535
name: "error",
3636
code: ptrace.StatusCodeError,
3737
tag: dbmodel.KeyValue{
38-
Key: conventions.OtelStatusCode,
39-
Type: dbmodel.StringType,
40-
Value: statusError,
38+
Key: tagError,
39+
Type: dbmodel.BoolType,
40+
Value: "true",
4141
},
4242
},
4343
}
4444

4545
for _, test := range tests {
4646
t.Run(test.name, func(t *testing.T) {
47-
tagAppender := newTagAppender(false, nil, "")
48-
tagAppender.appendStatusCodeTag(test.code)
49-
got, tagMap := tagAppender.getTags()
47+
appender := newTagAppender(false, nil, "")
48+
appender.appendStatusCodeTag(test.code)
49+
got, tagMap := appender.getTags()
5050
_, ok := tagMap[test.tag.Key]
5151
assert.False(t, ok)
52-
assert.EqualValues(t, test.tag, got[0])
52+
assert.Equal(t, test.tag, got[0])
5353
})
5454
}
5555
}
5656

5757
func TestAppendStatusMsgTag(t *testing.T) {
58-
tagAppender := newTagAppender(true, nil, ".")
59-
tagAppender.appendStatusMsgTag("")
60-
got, tagMap := tagAppender.getTags()
58+
appender := newTagAppender(true, nil, ".")
59+
appender.appendStatusMsgTag("")
60+
got, tagMap := appender.getTags()
6161
assert.Empty(t, tagMap)
6262
assert.Empty(t, got)
63-
tagAppender.appendStatusMsgTag("test-error")
63+
appender.appendStatusMsgTag("test-error")
6464
assert.Empty(t, got)
6565
tag, ok := tagMap[conventions.OtelStatusDescription]
6666
assert.True(t, ok)
@@ -119,9 +119,9 @@ func TestAppendSpanKindTag(t *testing.T) {
119119

120120
for _, test := range tests {
121121
t.Run(test.name, func(t *testing.T) {
122-
tagAppender := newTagAppender(true, nil, "#")
123-
tagAppender.appendSpanKindTag(test.kind)
124-
tags, tagMap := tagAppender.getTags()
122+
appender := newTagAppender(true, nil, "#")
123+
appender.appendSpanKindTag(test.kind)
124+
tags, tagMap := appender.getTags()
125125
assert.Empty(t, tags)
126126
tag, ok := tagMap["span#kind"]
127127
assert.Equal(t, test.ok, ok)
@@ -136,10 +136,10 @@ func TestAppendTagWhenTagKeysAsField(t *testing.T) {
136136
tagKeysAsFields := map[string]bool{
137137
"testing.key.1": true,
138138
}
139-
tagAppender := newTagAppender(false, tagKeysAsFields, "#")
140-
tagAppender.appendTag("testing.key.1", pcommon.NewValueInt(1))
141-
tagAppender.appendTag("testing.key.2", pcommon.NewValueInt(2))
142-
tags, tagMap := tagAppender.getTags()
139+
appender := newTagAppender(false, tagKeysAsFields, "#")
140+
appender.appendTag("testing.key.1", pcommon.NewValueInt(1))
141+
appender.appendTag("testing.key.2", pcommon.NewValueInt(2))
142+
tags, tagMap := appender.getTags()
143143
assert.Len(t, tags, 1)
144144
assert.Len(t, tagMap, 1)
145145
assert.Equal(t, int64(1), tagMap["testing#key#1"])
@@ -200,9 +200,9 @@ func testAppendTags(t *testing.T, allTagsAsFields bool) {
200200
}
201201
for _, test := range tests {
202202
t.Run(test.name, func(t *testing.T) {
203-
tagAppender := newTagAppender(allTagsAsFields, nil, ".")
204-
tagAppender.appendTag(test.name, test.value)
205-
tags, tagMap := tagAppender.getTags()
203+
appender := newTagAppender(allTagsAsFields, nil, ".")
204+
appender.appendTag(test.name, test.value)
205+
tags, tagMap := appender.getTags()
206206
if allTagsAsFields && test.dbType != dbmodel.BinaryType {
207207
assert.Empty(t, tags)
208208
assert.Len(t, tagMap, 1)

internal/storage/v2/elasticsearch/tracestore/to_dbmodel.go

+1-5
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,7 @@ func (t ToDBModel) resourceToDbProcess(resource pcommon.Resource) dbmodel.Proces
109109

110110
func appendTagsFromAttributes(dest []dbmodel.KeyValue, attrs pcommon.Map) []dbmodel.KeyValue {
111111
for key, attr := range attrs.All() {
112-
dest = append(dest, dbmodel.KeyValue{
113-
Key: key,
114-
Type: attributeToDbType(attr.Type()),
115-
Value: attr.AsString(),
116-
})
112+
dest = append(dest, attributeToDbTag(key, attr))
117113
}
118114
return dest
119115
}

0 commit comments

Comments
 (0)