17
17
package com .google .cloud .logging ;
18
18
19
19
20
- import static com .google .logging .v2 .LoggingServiceV2Grpc .SERVICE_NAME ;
21
20
import static org .junit .Assert .assertEquals ;
22
21
import static org .junit .Assert .assertFalse ;
23
22
import static org .junit .Assert .assertNotEquals ;
24
23
import static org .junit .Assert .assertNull ;
25
24
26
- import io .opentelemetry .api . OpenTelemetry ;
25
+ import io .opentelemetry .context . Scope ;
27
26
import org .junit .Test ;
28
27
import org .junit .runner .RunWith ;
29
28
import org .junit .runners .JUnit4 ;
30
29
import org .threeten .bp .Duration ;
31
30
import io .opentelemetry .api .trace .Span ;
32
31
import io .opentelemetry .api .trace .*;
33
- import io .opentelemetry .api .GlobalOpenTelemetry ;
34
- import io .opentelemetry .api .common .AttributeKey ;
35
- import io .opentelemetry .api .common .Attributes ;
36
- import io .opentelemetry .api .trace .StatusCode ;
37
32
import io .opentelemetry .sdk .OpenTelemetrySdk ;
38
- import io .opentelemetry .sdk .resources .Resource ;
39
33
import io .opentelemetry .sdk .testing .exporter .InMemorySpanExporter ;
40
34
import io .opentelemetry .sdk .trace .SdkTracerProvider ;
41
35
import io .opentelemetry .sdk .trace .SpanProcessor ;
42
- import io .opentelemetry .sdk .trace .data .EventData ;
43
- import io .opentelemetry .sdk .trace .data .SpanData ;
44
36
import io .opentelemetry .sdk .trace .export .SimpleSpanProcessor ;
45
- import io .opentelemetry .sdk .trace .samplers .Sampler ;
46
37
47
38
48
39
@ RunWith (JUnit4 .class )
@@ -173,37 +164,8 @@ public void testParsingW3CTraceParent() {
173
164
174
165
175
166
@ Test
176
- public void testParsingOtelContext () {
177
- InMemorySpanExporter testExporter = InMemorySpanExporter .create ();
178
- // OpenTelemetrySdk myOpenTelemetrySdk = OpenTelemetrySdk.builder().build();
179
-
180
- /* OpenTelemetrySdk.builder()
181
- .setTracerProvider(
182
- SdkTracerProvider.builder()
183
- .addSpanProcessor(BatchSpanProcessor.builder(traceExporter).build())
184
- .build())
185
- .buildAndRegisterGlobal();*/
186
-
187
-
188
- // Create with an in-memory span exporter.
189
- // GlobalOpenTelemetry.resetForTest();
190
- /* Resource resource =
191
- Resource.getDefault().merge(Resource.builder().put(SERVICE_NAME, "Sparky").build());
192
-
193
-
194
- OpenTelemetry sdk = OpenTelemetrySdk.builder()
195
- .setTracerProvider(
196
- SdkTracerProvider.builder()
197
- .setResource(resource)
198
- .addSpanProcessor(inMemorySpanProcessor)
199
- .setSampler(Sampler.alwaysOn())
200
- .build())
201
- .buildAndRegisterGlobal();
202
- */
203
-
204
-
205
- ///////////////
206
-
167
+ public void testParsingOpenTelemetryContext () {
168
+ InMemorySpanExporter testExporter = InMemorySpanExporter .create ();
207
169
SpanProcessor inMemorySpanProcessor = SimpleSpanProcessor .create (testExporter );
208
170
OpenTelemetrySdk openTelemetrySdk =
209
171
OpenTelemetrySdk .builder ()
@@ -213,16 +175,21 @@ public void testParsingOtelContext() {
213
175
.build ())
214
176
.build ();
215
177
216
- // OpenTelemetry has a maximum of 128 Attributes by default for Spans, Links, and Events.
217
178
Tracer tracer = openTelemetrySdk .getTracer ("ContextTest" );
218
- Span multiAttrSpan = tracer .spanBuilder ("Example Span Attributes" ).startSpan ();
219
- multiAttrSpan .setAttribute ("Attribute 1" , "first attribute value" );
220
- multiAttrSpan .setAttribute ("Attribute 2" , "second attribute value" );
221
- multiAttrSpan .end ();
179
+ Span otelSpan = tracer .spanBuilder ("Example Span Attributes" ).startSpan ();
180
+ SpanContext currentOtelContext ;
222
181
Context .Builder builder = Context .newBuilder ();
223
- SpanContext currentOtelContext = multiAttrSpan .getSpanContext ();
224
- builder .loadOpenTelemetryContext ();
225
- assertTraceSpanAndSampled (builder .build (), currentOtelContext .getTraceId (), currentOtelContext .getSpanId (), currentOtelContext .isSampled ());
182
+ try (Scope scope = otelSpan .makeCurrent ()) {
183
+ otelSpan .setAttribute ("Attribute 1" , "first attribute value" );
184
+ currentOtelContext = otelSpan .getSpanContext ();
185
+ builder .loadOpenTelemetryContext ();
186
+ assertTraceSpanAndSampled (builder .build (), currentOtelContext .getTraceId (), currentOtelContext .getSpanId (), currentOtelContext .isSampled ());
187
+ } catch (Throwable t ) {
188
+ otelSpan .recordException (t );
189
+ throw t ;
190
+ } finally {
191
+ otelSpan .end ();
192
+ }
226
193
}
227
194
228
195
private void assertTraceAndSpan1 (Context context , String expectedTraceId , String expectedSpanId ) {
0 commit comments