|
16 | 16 |
|
17 | 17 | package com.google.cloud.logging;
|
18 | 18 |
|
| 19 | + |
| 20 | +import static com.google.logging.v2.LoggingServiceV2Grpc.SERVICE_NAME; |
19 | 21 | import static org.junit.Assert.assertEquals;
|
20 | 22 | import static org.junit.Assert.assertFalse;
|
21 | 23 | import static org.junit.Assert.assertNotEquals;
|
22 | 24 | import static org.junit.Assert.assertNull;
|
23 | 25 |
|
| 26 | +import io.opentelemetry.api.OpenTelemetry; |
24 | 27 | import org.junit.Test;
|
25 | 28 | import org.junit.runner.RunWith;
|
26 | 29 | import org.junit.runners.JUnit4;
|
27 | 30 | import org.threeten.bp.Duration;
|
| 31 | +import io.opentelemetry.api.trace.Span; |
| 32 | +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 | +import io.opentelemetry.sdk.OpenTelemetrySdk; |
| 38 | +import io.opentelemetry.sdk.resources.Resource; |
| 39 | +import io.opentelemetry.sdk.testing.exporter.InMemorySpanExporter; |
| 40 | +import io.opentelemetry.sdk.trace.SdkTracerProvider; |
| 41 | +import io.opentelemetry.sdk.trace.SpanProcessor; |
| 42 | +import io.opentelemetry.sdk.trace.data.EventData; |
| 43 | +import io.opentelemetry.sdk.trace.data.SpanData; |
| 44 | +import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; |
| 45 | +import io.opentelemetry.sdk.trace.samplers.Sampler; |
| 46 | + |
28 | 47 |
|
29 | 48 | @RunWith(JUnit4.class)
|
30 | 49 | public class ContextTest {
|
@@ -152,6 +171,60 @@ public void testParsingW3CTraceParent() {
|
152 | 171 | assertTraceSpanAndSampled(builder.build(), W3C_TEST_TRACE_ID, W3C_TEST_SPAN_ID, true);
|
153 | 172 | }
|
154 | 173 |
|
| 174 | + |
| 175 | + @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 | + |
| 207 | + SpanProcessor inMemorySpanProcessor = SimpleSpanProcessor.create(testExporter); |
| 208 | + OpenTelemetrySdk openTelemetrySdk = |
| 209 | + OpenTelemetrySdk.builder() |
| 210 | + .setTracerProvider( |
| 211 | + SdkTracerProvider.builder() |
| 212 | + .addSpanProcessor(inMemorySpanProcessor) |
| 213 | + .build()) |
| 214 | + .build(); |
| 215 | + |
| 216 | + // OpenTelemetry has a maximum of 128 Attributes by default for Spans, Links, and Events. |
| 217 | + 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(); |
| 222 | + Context.Builder builder = Context.newBuilder(); |
| 223 | + SpanContext currentOtelContext = multiAttrSpan.getSpanContext(); |
| 224 | + builder.loadOpenTelemetryContext(); |
| 225 | + assertTraceSpanAndSampled(builder.build(), currentOtelContext.getTraceId(), currentOtelContext.getSpanId(), currentOtelContext.isSampled()); |
| 226 | + } |
| 227 | + |
155 | 228 | private void assertTraceAndSpan1(Context context, String expectedTraceId, String expectedSpanId) {
|
156 | 229 | assertEquals(expectedTraceId, context.getTraceId());
|
157 | 230 | assertEquals(expectedSpanId, context.getSpanId());
|
|
0 commit comments