Skip to content

Commit b4d3ee7

Browse files
author
cindy-peng
committed
Add otel unit tests
1 parent 107144b commit b4d3ee7

File tree

3 files changed

+125
-1
lines changed

3 files changed

+125
-1
lines changed

google-cloud-logging/pom.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,18 @@
137137
<artifactId>grpc-google-cloud-logging-v2</artifactId>
138138
<scope>test</scope>
139139
</dependency>
140+
<!-- OpenTelemetry -->
141+
<dependency>
142+
<groupId>io.opentelemetry</groupId>
143+
<artifactId>opentelemetry-sdk</artifactId>
144+
<scope>test</scope>
145+
</dependency>
146+
<dependency>
147+
<groupId>io.opentelemetry</groupId>
148+
<artifactId>opentelemetry-sdk-testing</artifactId>
149+
<scope>test</scope>
150+
</dependency>
151+
<!-- END OpenTelemetry -->
140152
<!-- Need testing utility classes for generated gRPC clients tests -->
141153
<dependency>
142154
<groupId>com.google.api</groupId>

google-cloud-logging/src/test/java/com/google/cloud/logging/ContextTest.java

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,34 @@
1616

1717
package com.google.cloud.logging;
1818

19+
20+
import static com.google.logging.v2.LoggingServiceV2Grpc.SERVICE_NAME;
1921
import static org.junit.Assert.assertEquals;
2022
import static org.junit.Assert.assertFalse;
2123
import static org.junit.Assert.assertNotEquals;
2224
import static org.junit.Assert.assertNull;
2325

26+
import io.opentelemetry.api.OpenTelemetry;
2427
import org.junit.Test;
2528
import org.junit.runner.RunWith;
2629
import org.junit.runners.JUnit4;
2730
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+
2847

2948
@RunWith(JUnit4.class)
3049
public class ContextTest {
@@ -152,6 +171,60 @@ public void testParsingW3CTraceParent() {
152171
assertTraceSpanAndSampled(builder.build(), W3C_TEST_TRACE_ID, W3C_TEST_SPAN_ID, true);
153172
}
154173

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+
155228
private void assertTraceAndSpan1(Context context, String expectedTraceId, String expectedSpanId) {
156229
assertEquals(expectedTraceId, context.getTraceId());
157230
assertEquals(expectedSpanId, context.getSpanId());

pom.xml

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
5555
<github.global.server>github</github.global.server>
5656
<site.installationModule>google-cloud-logging-parent</site.installationModule>
57+
<opentelemetry.version>1.36.0</opentelemetry.version>
5758
</properties>
5859

5960
<!-- OpenTelemetry -->
@@ -62,7 +63,7 @@
6263
<dependency>
6364
<groupId>io.opentelemetry</groupId>
6465
<artifactId>opentelemetry-api</artifactId>
65-
<version>1.36.0</version>
66+
<version>${opentelemetry.version}</version>
6667
</dependency>
6768
<!-- END OpenTelemetry -->
6869
<dependency>
@@ -124,6 +125,44 @@
124125
</exclusion>
125126
</exclusions>
126127
</dependency>
128+
<!-- OpenTelemetry -->
129+
<dependency>
130+
<groupId>io.opentelemetry</groupId>
131+
<artifactId>opentelemetry-sdk</artifactId>
132+
<version>${opentelemetry.version}</version>
133+
<scope>test</scope>
134+
</dependency>
135+
<dependency>
136+
<groupId>io.opentelemetry</groupId>
137+
<artifactId>opentelemetry-sdk-testing</artifactId>
138+
<version>${opentelemetry.version}</version>
139+
<scope>test</scope>
140+
</dependency>
141+
<dependency>
142+
<groupId>io.opentelemetry</groupId>
143+
<artifactId>opentelemetry-semconv</artifactId>
144+
<version>${opentelemetry.version}-alpha</version>
145+
<scope>test</scope>
146+
</dependency>
147+
<dependency>
148+
<groupId>io.opentelemetry</groupId>
149+
<artifactId>opentelemetry-sdk-trace</artifactId>
150+
<version>${opentelemetry.version}</version>
151+
<scope>test</scope>
152+
</dependency>
153+
<dependency>
154+
<groupId>io.opentelemetry</groupId>
155+
<artifactId>opentelemetry-sdk-common</artifactId>
156+
<version>${opentelemetry.version}</version>
157+
<scope>test</scope>
158+
</dependency>
159+
<dependency>
160+
<groupId>com.google.cloud.opentelemetry</groupId>
161+
<artifactId>exporter-trace</artifactId>
162+
<version>0.15.0</version>
163+
<scope>test</scope>
164+
</dependency>
165+
<!-- END OpenTelemetry -->
127166
</dependencies>
128167
</dependencyManagement>
129168

0 commit comments

Comments
 (0)