19
19
from opentelemetry import trace as trace_api
20
20
from opentelemetry .ext .zipkin import ZipkinSpanExporter
21
21
from opentelemetry .sdk import trace
22
+ from opentelemetry .sdk .trace import Resource
22
23
from opentelemetry .sdk .trace .export import SpanExportResult
23
24
from opentelemetry .trace import TraceFlags
24
25
@@ -95,7 +96,7 @@ def test_constructor_explicit(self):
95
96
# pylint: disable=too-many-locals
96
97
def test_export (self ):
97
98
98
- span_names = ("test1" , "test2" , "test3" )
99
+ span_names = ("test1" , "test2" , "test3" , "test4" )
99
100
trace_id = 0x6E0C63257DE34C926F9EFCD03927272E
100
101
span_id = 0x34BF92DEEFC58C92
101
102
parent_id = 0x1111111111111111
@@ -106,12 +107,14 @@ def test_export(self):
106
107
base_time ,
107
108
base_time + 150 * 10 ** 6 ,
108
109
base_time + 300 * 10 ** 6 ,
110
+ base_time + 400 * 10 ** 6 ,
109
111
)
110
- durations = (50 * 10 ** 6 , 100 * 10 ** 6 , 200 * 10 ** 6 )
112
+ durations = (50 * 10 ** 6 , 100 * 10 ** 6 , 200 * 10 ** 6 , 300 * 10 ** 6 )
111
113
end_times = (
112
114
start_times [0 ] + durations [0 ],
113
115
start_times [1 ] + durations [1 ],
114
116
start_times [2 ] + durations [2 ],
117
+ start_times [3 ] + durations [3 ],
115
118
)
116
119
117
120
span_context = trace_api .SpanContext (
@@ -158,6 +161,7 @@ def test_export(self):
158
161
name = span_names [1 ], context = parent_context , parent = None
159
162
),
160
163
trace .Span (name = span_names [2 ], context = other_context , parent = None ),
164
+ trace .Span (name = span_names [3 ], context = other_context , parent = None ),
161
165
]
162
166
163
167
otel_spans [0 ].start (start_time = start_times [0 ])
@@ -168,11 +172,21 @@ def test_export(self):
168
172
otel_spans [0 ].end (end_time = end_times [0 ])
169
173
170
174
otel_spans [1 ].start (start_time = start_times [1 ])
175
+ otel_spans [1 ].resource = Resource (
176
+ labels = {"key_resource" : "some_resource" }
177
+ )
171
178
otel_spans [1 ].end (end_time = end_times [1 ])
172
179
173
180
otel_spans [2 ].start (start_time = start_times [2 ])
181
+ otel_spans [2 ].set_attribute ("key_string" , "hello_world" )
182
+ otel_spans [2 ].resource = Resource (
183
+ labels = {"key_resource" : "some_resource" }
184
+ )
174
185
otel_spans [2 ].end (end_time = end_times [2 ])
175
186
187
+ otel_spans [3 ].start (start_time = start_times [3 ])
188
+ otel_spans [3 ].end (end_time = end_times [3 ])
189
+
176
190
service_name = "test-service"
177
191
local_endpoint = {"serviceName" : service_name , "port" : 9411 }
178
192
@@ -208,7 +222,7 @@ def test_export(self):
208
222
"duration" : durations [1 ] // 10 ** 3 ,
209
223
"localEndpoint" : local_endpoint ,
210
224
"kind" : None ,
211
- "tags" : None ,
225
+ "tags" : { "key_resource" : "some_resource" } ,
212
226
"annotations" : None ,
213
227
},
214
228
{
@@ -219,7 +233,21 @@ def test_export(self):
219
233
"duration" : durations [2 ] // 10 ** 3 ,
220
234
"localEndpoint" : local_endpoint ,
221
235
"kind" : None ,
222
- "tags" : None ,
236
+ "tags" : {
237
+ "key_string" : "hello_world" ,
238
+ "key_resource" : "some_resource" ,
239
+ },
240
+ "annotations" : None ,
241
+ },
242
+ {
243
+ "traceId" : format (trace_id , "x" ),
244
+ "id" : format (other_id , "x" ),
245
+ "name" : span_names [3 ],
246
+ "timestamp" : start_times [3 ] // 10 ** 3 ,
247
+ "duration" : durations [3 ] // 10 ** 3 ,
248
+ "localEndpoint" : local_endpoint ,
249
+ "kind" : None ,
250
+ "tags" : {},
223
251
"annotations" : None ,
224
252
},
225
253
]
0 commit comments