Skip to content

Commit 4dd57f3

Browse files
authored
Translate OTEL instrumentation library to ES DB model (#2484)
* Translate OTEL instrumentation library to ES DB model Signed-off-by: Pavol Loffay <ploffay@redhat.com> * Print OTEL xdock logs if failed Signed-off-by: Pavol Loffay <ploffay@redhat.com> * Add nil check Signed-off-by: Pavol Loffay <ploffay@redhat.com>
1 parent 02a4c47 commit 4dd57f3

File tree

3 files changed

+32
-4
lines changed

3 files changed

+32
-4
lines changed

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ after_success:
8585
- if [ "$COVERAGE" == true ]; then bash <(curl -s https://codecov.io/bash) ; else echo 'skipping coverage'; fi
8686

8787
after_failure:
88-
- if [ "$CROSSDOCK" == true ]; then make crossdock-logs ; else echo 'skipping crossdock'; fi
88+
- if [ "$CROSSDOCK" == true || "$CROSSDOCK_OTEL" == true ]; then make crossdock-logs ; else echo 'skipping crossdock'; fi
8989

9090
before_deploy:
9191
- if [ "$DEPLOY" == true ]; then bash ./scripts/travis/package-deploy.sh ; else echo 'skipping deploying binaries'; fi

cmd/opentelemetry/app/exporter/elasticsearchexporter/esmodeltranslator/modeltranslator.go

+21-2
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,13 @@ func (c *Translator) resourceSpans(rspans pdata.ResourceSpans, spansData *[]Conv
9090
ils := rspans.InstrumentationLibrarySpans()
9191
process := c.process(rspans.Resource())
9292
for i := 0; i < ils.Len(); i++ {
93-
// TODO convert instrumentation library info
94-
//ils.At(i).InstrumentationLibrary()
9593
spans := ils.At(i).Spans()
9694
for j := 0; j < spans.Len(); j++ {
9795
dbSpan, err := c.spanWithoutProcess(spans.At(j))
9896
if err != nil {
9997
return err
10098
}
99+
c.addInstrumentationLibrary(dbSpan, ils.At(i).InstrumentationLibrary())
101100
dbSpan.Process = *process
102101
*spansData = append(*spansData, ConvertedData{
103102
Span: spans.At(j),
@@ -110,6 +109,26 @@ func (c *Translator) resourceSpans(rspans pdata.ResourceSpans, spansData *[]Conv
110109
return nil
111110
}
112111

112+
func (c *Translator) addInstrumentationLibrary(span *dbmodel.Span, instLib pdata.InstrumentationLibrary) {
113+
if instLib.IsNil() {
114+
return
115+
}
116+
if instLib.Name() != "" {
117+
span.Tags = append(span.Tags, dbmodel.KeyValue{
118+
Key: tracetranslator.TagInstrumentationName,
119+
Type: dbmodel.StringType,
120+
Value: instLib.Name(),
121+
})
122+
}
123+
if instLib.Version() != "" {
124+
span.Tags = append(span.Tags, dbmodel.KeyValue{
125+
Key: tracetranslator.TagInstrumentationVersion,
126+
Type: dbmodel.StringType,
127+
Value: instLib.Version(),
128+
})
129+
}
130+
}
131+
113132
func (c *Translator) spanWithoutProcess(span pdata.Span) (*dbmodel.Span, error) {
114133
if span.IsNil() {
115134
return nil, nil

cmd/opentelemetry/app/exporter/elasticsearchexporter/esmodeltranslator/modeltranslator_test.go

+10-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/stretchr/testify/require"
2525
"go.opentelemetry.io/collector/consumer/pdata"
2626
"go.opentelemetry.io/collector/translator/conventions"
27+
tracetranslator "go.opentelemetry.io/collector/translator/trace"
2728

2829
"github.com/jaegertracing/jaeger/plugin/storage/es/spanstore/dbmodel"
2930
)
@@ -107,6 +108,10 @@ func TestConvertSpan(t *testing.T) {
107108
traces := traces("myservice")
108109
resource := traces.ResourceSpans().At(0).Resource()
109110
resource.Attributes().InsertDouble("num", 16.66)
111+
instrumentationLibrary := traces.ResourceSpans().At(0).InstrumentationLibrarySpans().At(0).InstrumentationLibrary()
112+
instrumentationLibrary.InitEmpty()
113+
instrumentationLibrary.SetName("io.opentelemetry")
114+
instrumentationLibrary.SetVersion("1.0")
110115
span := addSpan(traces, "root", traceID, spanID)
111116
span.SetKind(pdata.SpanKindCLIENT)
112117
span.Status().InitEmpty()
@@ -149,7 +154,10 @@ func TestConvertSpan(t *testing.T) {
149154
{Key: "status.code", Type: dbmodel.StringType, Value: "Cancelled"},
150155
{Key: "error", Type: dbmodel.BoolType, Value: "true"},
151156
{Key: "status.message", Type: dbmodel.StringType, Value: "messagetext"},
152-
{Key: "foo", Type: dbmodel.BoolType, Value: "true"}},
157+
{Key: "foo", Type: dbmodel.BoolType, Value: "true"},
158+
{Key: tracetranslator.TagInstrumentationName, Type: dbmodel.StringType, Value: "io.opentelemetry"},
159+
{Key: tracetranslator.TagInstrumentationVersion, Type: dbmodel.StringType, Value: "1.0"},
160+
},
153161
Tag: map[string]interface{}{"toTagMap": "val"},
154162
Logs: []dbmodel.Log{{Fields: []dbmodel.KeyValue{
155163
{Key: "event", Value: "eventName", Type: dbmodel.StringType},
@@ -170,6 +178,7 @@ func TestSpanEmptyRef(t *testing.T) {
170178
span := addSpan(traces, "root", traceID, spanID)
171179
span.SetStartTime(pdata.TimestampUnixNano(1000000))
172180
span.SetEndTime(pdata.TimestampUnixNano(2000000))
181+
traces.ResourceSpans().At(0).InstrumentationLibrarySpans().At(0).InstrumentationLibrary().InitEmpty()
173182

174183
c := &Translator{}
175184
spansData, err := c.ConvertSpans(traces)

0 commit comments

Comments
 (0)