File tree 3 files changed +22
-1
lines changed
3 files changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ import (
18
18
"context"
19
19
"log"
20
20
21
+ "go.opentelemetry.io/otel/api/core"
21
22
"go.opentelemetry.io/otel/api/correlation"
22
23
"go.opentelemetry.io/otel/api/global"
23
24
"go.opentelemetry.io/otel/api/key"
@@ -45,7 +46,8 @@ func initTracer() {
45
46
return
46
47
}
47
48
tp , err := sdktrace .NewProvider (sdktrace .WithSyncer (exp ),
48
- sdktrace .WithConfig (sdktrace.Config {DefaultSampler : sdktrace .AlwaysSample ()}))
49
+ sdktrace .WithConfig (sdktrace.Config {DefaultSampler : sdktrace .AlwaysSample ()}),
50
+ sdktrace .WithResourceAttributes (core .Key ("rk1" ).String ("rv11" ), core .Key ("rk2" ).Int64 (5 )))
49
51
if err != nil {
50
52
log .Panicf ("failed to initialize trace provider %v" , err )
51
53
}
Original file line number Diff line number Diff line change @@ -51,6 +51,18 @@ func NewExporter(o Options) (*Exporter, error) {
51
51
52
52
// ExportSpan writes a SpanData in json format to stdout.
53
53
func (e * Exporter ) ExportSpan (ctx context.Context , data * export.SpanData ) {
54
+ if data .Resource != nil {
55
+ dataCopy := * data
56
+ dataCopy .Attributes = append (data .Attributes , data .Resource .Attributes ()... )
57
+ dataCopy .Resource = nil
58
+ e .exportSpan (ctx , & dataCopy )
59
+ } else {
60
+ e .exportSpan (ctx , data )
61
+ }
62
+ }
63
+
64
+ // ExportSpan writes a SpanData in json format to stdout.
65
+ func (e * Exporter ) exportSpan (ctx context.Context , data * export.SpanData ) {
54
66
var jsonSpan []byte
55
67
var err error
56
68
if e .pretty {
Original file line number Diff line number Diff line change @@ -27,6 +27,7 @@ import (
27
27
"go.opentelemetry.io/otel/api/key"
28
28
"go.opentelemetry.io/otel/api/trace"
29
29
export "go.opentelemetry.io/otel/sdk/export/trace"
30
+ "go.opentelemetry.io/otel/sdk/resource"
30
31
)
31
32
32
33
func TestExporter_ExportSpan (t * testing.T ) {
@@ -43,6 +44,7 @@ func TestExporter_ExportSpan(t *testing.T) {
43
44
spanID , _ := core .SpanIDFromHex ("0102030405060708" )
44
45
keyValue := "value"
45
46
doubleValue := 123.456
47
+ resource := resource .New (core .Key ("rk1" ).String ("rv11" ))
46
48
47
49
testSpan := & export.SpanData {
48
50
SpanContext : core.SpanContext {
@@ -63,6 +65,7 @@ func TestExporter_ExportSpan(t *testing.T) {
63
65
SpanKind : trace .SpanKindInternal ,
64
66
StatusCode : codes .Unknown ,
65
67
StatusMessage : "interesting" ,
68
+ Resource : resource ,
66
69
}
67
70
ex .ExportSpan (context .Background (), testSpan )
68
71
@@ -85,6 +88,10 @@ func TestExporter_ExportSpan(t *testing.T) {
85
88
`{` +
86
89
`"Key":"double",` +
87
90
`"Value":{"Type":"FLOAT64","Value":123.456}` +
91
+ `},` +
92
+ `{` +
93
+ `"Key":"rk1",` +
94
+ `"Value":{"Type":"STRING","Value":"rv11"}` +
88
95
`}` +
89
96
`],` +
90
97
`"MessageEvents":[` +
You can’t perform that action at this time.
0 commit comments