Skip to content

Commit 80b720a

Browse files
authoredMar 16, 2020
update stdout trace with resource. (#558)
* update stdout trace with resource. * convert resource to span attributes. * remove resource reference after converting to Span Attributes.
1 parent 435c39a commit 80b720a

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed
 

‎example/basic/main.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"context"
1919
"log"
2020

21+
"go.opentelemetry.io/otel/api/core"
2122
"go.opentelemetry.io/otel/api/correlation"
2223
"go.opentelemetry.io/otel/api/global"
2324
"go.opentelemetry.io/otel/api/key"
@@ -45,7 +46,8 @@ func initTracer() {
4546
return
4647
}
4748
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)))
4951
if err != nil {
5052
log.Panicf("failed to initialize trace provider %v", err)
5153
}

‎exporters/trace/stdout/stdout.go

+12
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,18 @@ func NewExporter(o Options) (*Exporter, error) {
5151

5252
// ExportSpan writes a SpanData in json format to stdout.
5353
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) {
5466
var jsonSpan []byte
5567
var err error
5668
if e.pretty {

‎exporters/trace/stdout/stdout_test.go

+7
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"go.opentelemetry.io/otel/api/key"
2828
"go.opentelemetry.io/otel/api/trace"
2929
export "go.opentelemetry.io/otel/sdk/export/trace"
30+
"go.opentelemetry.io/otel/sdk/resource"
3031
)
3132

3233
func TestExporter_ExportSpan(t *testing.T) {
@@ -43,6 +44,7 @@ func TestExporter_ExportSpan(t *testing.T) {
4344
spanID, _ := core.SpanIDFromHex("0102030405060708")
4445
keyValue := "value"
4546
doubleValue := 123.456
47+
resource := resource.New(core.Key("rk1").String("rv11"))
4648

4749
testSpan := &export.SpanData{
4850
SpanContext: core.SpanContext{
@@ -63,6 +65,7 @@ func TestExporter_ExportSpan(t *testing.T) {
6365
SpanKind: trace.SpanKindInternal,
6466
StatusCode: codes.Unknown,
6567
StatusMessage: "interesting",
68+
Resource: resource,
6669
}
6770
ex.ExportSpan(context.Background(), testSpan)
6871

@@ -85,6 +88,10 @@ func TestExporter_ExportSpan(t *testing.T) {
8588
`{` +
8689
`"Key":"double",` +
8790
`"Value":{"Type":"FLOAT64","Value":123.456}` +
91+
`},` +
92+
`{` +
93+
`"Key":"rk1",` +
94+
`"Value":{"Type":"STRING","Value":"rv11"}` +
8895
`}` +
8996
`],` +
9097
`"MessageEvents":[` +

0 commit comments

Comments
 (0)
Please sign in to comment.