Update dependencies

This commit is contained in:
Anuraag Agrawal 2021-01-30 15:45:58 +09:00
parent d16e51f798
commit ca482b7e68
36 changed files with 147 additions and 122 deletions

View File

@ -72,13 +72,12 @@ public final class W3CBaggagePropagator implements TextMapPropagator {
BaggageBuilder baggageBuilder = Baggage.builder();
try {
extractEntries(baggageHeader, baggageBuilder);
} catch (Exception e) {
} catch (RuntimeException e) {
return context.with(Baggage.empty());
}
return context.with(baggageBuilder.build());
}
@SuppressWarnings("StringSplitter")
private static void extractEntries(String baggageHeader, BaggageBuilder baggageBuilder) {
// todo: optimize this implementation; it can probably done with a single pass through the
// string.

View File

@ -45,6 +45,7 @@ import java.util.concurrent.atomic.AtomicLong;
*/
// Suppress warnings since this is copied as-is.
@SuppressWarnings({
"HashCodeToString",
"MissingSummary",
"UngroupedOverloads",
"ThreadPriorityCheck",

View File

@ -479,6 +479,7 @@ class ContextTest {
assertThat(twoKeys.get(cheese)).isEqualTo("whiz");
}
@SuppressWarnings("HashCodeToString")
private static class HashCollidingKey implements ContextKey<String> {
@Override
public int hashCode() {

View File

@ -80,12 +80,6 @@ subprojects {
archivesBaseName = "opentelemetry-${name}"
}
repositories {
mavenCentral()
jcenter()
mavenLocal()
}
configure<JavaPluginExtension> {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
@ -192,6 +186,17 @@ subprojects {
// Limits APIs
disable("NoFunctionalReturnType")
// We don't depend on Guava so use normal splitting
disable("StringSplitter")
// Prevents lazy initialization
disable("InitializeInline")
if (name.contains("Jmh") || name.contains("Test")) {
// Allow underscore in test-type method names
disable("MemberName")
}
}
}

View File

@ -1,5 +1,9 @@
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
plugins {
`java-platform`
id("com.github.ben-manes.versions")
}
data class DependencySet(val group: String, val version: String, val modules: List<String>)
@ -9,11 +13,11 @@ rootProject.extra["versions"] = dependencyVersions
val DEPENDENCY_BOMS = listOf(
"com.linecorp.armeria:armeria-bom:1.3.0",
"io.grpc:grpc-bom:1.34.1",
"io.zipkin.brave:brave-bom:5.13.1",
"io.grpc:grpc-bom:1.35.0",
"io.zipkin.brave:brave-bom:5.13.3",
"com.google.guava:guava-bom:30.1-jre",
"com.google.protobuf:protobuf-bom:3.14.0",
"com.fasterxml.jackson:jackson-bom:2.12.0",
"com.fasterxml.jackson:jackson-bom:2.12.1",
"org.junit:junit-bom:5.7.0",
"io.zipkin.reporter2:zipkin-reporter-bom:2.16.3"
)
@ -26,12 +30,12 @@ val DEPENDENCY_SETS = listOf(
),
DependencySet(
"com.google.errorprone",
"2.4.0",
"2.5.1",
listOf("error_prone_annotations", "error_prone_core")
),
DependencySet(
"io.opencensus",
"0.28.2",
"0.28.3",
listOf(
"opencensus-api",
"opencensus-impl-core",
@ -41,7 +45,7 @@ val DEPENDENCY_SETS = listOf(
),
DependencySet(
"io.prometheus",
"0.9.0",
"0.10.0",
listOf("simpleclient", "simpleclient_common", "simpleclient_httpserver")
),
DependencySet(
@ -56,7 +60,7 @@ val DEPENDENCY_SETS = listOf(
),
DependencySet(
"org.mockito",
"3.7.0",
"3.7.7",
listOf("mockito-core", "mockito-junit-jupiter")
),
DependencySet(
@ -73,7 +77,7 @@ val DEPENDENCIES = listOf(
"com.google.guava:guava-beta-checker:1.0",
"com.lmax:disruptor:3.4.2",
"com.sparkjava:spark-core:2.9.3",
"com.squareup.okhttp3:okhttp:3.14.9",
"com.squareup.okhttp3:okhttp:4.9.0",
"com.sun.net.httpserver:http:20070405",
"com.tngtech.archunit:archunit-junit4:0.15.0",
"edu.berkeley.cs.jqf:jqf-fuzz:1.6",
@ -81,13 +85,13 @@ val DEPENDENCIES = listOf(
"io.github.netmikey.logunit:logunit-jul:1.1.0",
"io.jaegertracing:jaeger-client:1.5.0",
"io.opentracing:opentracing-api:0.33.0",
"io.zipkin.zipkin2:zipkin-junit:2.18.3",
"io.zipkin.zipkin2:zipkin-junit:2.23.2",
"junit:junit:4.13.1",
"nl.jqno.equalsverifier:equalsverifier:3.5",
"org.assertj:assertj-core:3.18.1",
"nl.jqno.equalsverifier:equalsverifier:3.5.2",
"org.assertj:assertj-core:3.19.0",
"org.awaitility:awaitility:4.0.3",
"org.curioswitch.curiostack:protobuf-jackson:1.1.0",
"org.junit-pioneer:junit-pioneer:1.1.0",
"org.curioswitch.curiostack:protobuf-jackson:1.2.0",
"org.junit-pioneer:junit-pioneer:1.3.0",
"org.skyscreamer:jsonassert:1.5.0",
"org.slf4j:slf4j-simple:1.7.30"
)
@ -116,3 +120,22 @@ dependencies {
}
}
}
fun isNonStable(version: String): Boolean {
val stableKeyword = listOf("RELEASE", "FINAL", "GA").any { version.toUpperCase().contains(it) }
val regex = "^[0-9,.v-]+(-r)?$".toRegex()
val isGuava = version.endsWith("-jre")
val isStable = stableKeyword || regex.matches(version) || isGuava
return isStable.not()
}
tasks {
named<DependencyUpdatesTask>("dependencyUpdates") {
revision = "release"
checkConstraints = true
rejectVersionIf {
isNonStable(candidate.version)
}
}
}

View File

@ -12,11 +12,8 @@ import com.google.common.util.concurrent.MoreExecutors;
import io.grpc.ConnectivityState;
import io.grpc.ManagedChannel;
import io.opentelemetry.exporter.jaeger.proto.api_v2.Collector;
import io.opentelemetry.exporter.jaeger.proto.api_v2.Collector.PostSpansRequest;
import io.opentelemetry.exporter.jaeger.proto.api_v2.Collector.PostSpansResponse;
import io.opentelemetry.exporter.jaeger.proto.api_v2.CollectorServiceGrpc;
import io.opentelemetry.exporter.jaeger.proto.api_v2.Model;
import io.opentelemetry.exporter.jaeger.proto.api_v2.Model.Process;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.trace.data.SpanData;
@ -108,8 +105,9 @@ public final class JaegerGrpcSpanExporter implements SpanExporter {
.collect(Collectors.groupingBy(SpanData::getResource))
.forEach((resource, spanData) -> requests.add(buildRequest(resource, spanData)));
List<ListenableFuture<PostSpansResponse>> listenableFutures = new ArrayList<>(requests.size());
for (PostSpansRequest request : requests) {
List<ListenableFuture<Collector.PostSpansResponse>> listenableFutures =
new ArrayList<>(requests.size());
for (Collector.PostSpansRequest request : requests) {
listenableFutures.add(stub.postSpans(request));
}
@ -119,7 +117,7 @@ public final class JaegerGrpcSpanExporter implements SpanExporter {
for (ListenableFuture<Collector.PostSpansResponse> future : listenableFutures) {
Futures.addCallback(
future,
new FutureCallback<PostSpansResponse>() {
new FutureCallback<Collector.PostSpansResponse>() {
@Override
public void onSuccess(Collector.PostSpansResponse result) {
fulfill();
@ -149,7 +147,7 @@ public final class JaegerGrpcSpanExporter implements SpanExporter {
}
private Collector.PostSpansRequest buildRequest(Resource resource, List<SpanData> spans) {
Process.Builder builder = this.processBuilder.clone();
Model.Process.Builder builder = this.processBuilder.clone();
String serviceName = resource.getAttributes().get(ResourceAttributes.SERVICE_NAME);
if (serviceName == null || serviceName.isEmpty()) {

View File

@ -86,7 +86,7 @@ final class MetricAdapter {
case SUMMARY:
return Collector.Type.SUMMARY;
}
return Collector.Type.UNTYPED;
return Collector.Type.UNKNOWN;
}
private static final Function<String, String> sanitizer = new LabelNameSanitizer();

View File

@ -50,12 +50,12 @@ class PrometheusCollectorTest {
TextFormat.write004(stringWriter, CollectorRegistry.defaultRegistry.metricFamilySamples());
assertThat(stringWriter.toString())
.isEqualTo(
"# HELP grpc_name long_description\n"
+ "# TYPE grpc_name counter\n"
+ "grpc_name{kp=\"vp\",} 5.0\n"
+ "# HELP http_name double_description\n"
+ "# TYPE http_name counter\n"
+ "http_name{kp=\"vp\",} 3.5\n");
"# HELP grpc_name_total long_description\n"
+ "# TYPE grpc_name_total counter\n"
+ "grpc_name_total{kp=\"vp\",} 5.0\n"
+ "# HELP http_name_total double_description\n"
+ "# TYPE http_name_total counter\n"
+ "http_name_total{kp=\"vp\",} 3.5\n");
}
private static ImmutableList<MetricData> generateTestData() {

View File

@ -20,8 +20,7 @@ dependencies {
implementation "io.zipkin.reporter2:zipkin-sender-okhttp3"
testImplementation project(':sdk:testing')
testImplementation "com.google.guava:guava",
"io.zipkin.zipkin2:zipkin-junit"
testImplementation "io.zipkin.zipkin2:zipkin-junit"
}
animalsniffer {

View File

@ -7,7 +7,6 @@ package io.opentelemetry.exporter.zipkin;
import static org.assertj.core.api.Assertions.assertThat;
import com.google.common.collect.ImmutableList;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.trace.Span.Kind;
import io.opentelemetry.api.trace.SpanContext;
@ -21,6 +20,7 @@ import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentelemetry.sdk.trace.data.StatusData;
import io.opentelemetry.semconv.resource.attributes.ResourceAttributes;
import java.net.InetAddress;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.TimeUnit;
@ -49,7 +49,7 @@ public class ZipkinSpanExporterEndToEndHttpTest {
private static final long SENT_TIMESTAMP_NANOS = 1505855799_459486280L;
private static final Attributes attributes = Attributes.empty();
private static final List<EventData> annotations =
ImmutableList.of(
Arrays.asList(
EventData.create(RECEIVED_TIMESTAMP_NANOS, "RECEIVED", Attributes.empty()),
EventData.create(SENT_TIMESTAMP_NANOS, "SENT", Attributes.empty()));
@ -103,8 +103,7 @@ public class ZipkinSpanExporterEndToEndHttpTest {
assertThat(resultCode.isSuccess()).isFalse();
List<Span> zipkinSpans = zipkin.getTrace(TRACE_ID);
assertThat(zipkinSpans).isNotNull();
assertThat(zipkinSpans).isEmpty();
assertThat(zipkinSpans).isNull();
}
private static ZipkinSpanExporter buildZipkinExporter(

View File

@ -19,7 +19,6 @@ import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import com.google.common.collect.ImmutableList;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.trace.Span.Kind;
import io.opentelemetry.api.trace.SpanContext;
@ -62,7 +61,7 @@ class ZipkinSpanExporterTest {
private static final String PARENT_SPAN_ID = "8b03ab423da481c5";
private static final Attributes attributes = Attributes.empty();
private static final List<EventData> annotations =
ImmutableList.of(
Arrays.asList(
EventData.create(1505855799_433901068L, "RECEIVED", Attributes.empty()),
EventData.create(1505855799_459486280L, "SENT", Attributes.empty()));

View File

@ -26,7 +26,6 @@ final class B3PropagatorExtractorSingleHeader implements B3PropagatorExtractor {
return extractSpanContextFromSingleHeader(context, carrier, getter);
}
@SuppressWarnings("StringSplitter")
private static <C> Optional<Context> extractSpanContextFromSingleHeader(
Context context, C carrier, TextMapPropagator.Getter<C> getter) {
String value = getter.get(carrier, B3Propagator.COMBINED_HEADER);

View File

@ -43,7 +43,7 @@ final class Common {
spanId,
traceFlags,
TraceState.getDefault());
} catch (Exception e) {
} catch (RuntimeException e) {
logger.log(Level.FINE, "Error parsing header. Returning INVALID span context.", e);
return SpanContext.getInvalid();
}

View File

@ -141,7 +141,6 @@ public final class JaegerPropagator implements TextMapPropagator {
return context;
}
@SuppressWarnings("StringSplitter")
private static <C> SpanContext getSpanContextFromHeader(C carrier, Getter<C> getter) {
String value = getter.get(carrier, PROPAGATION_HEADER);
if (StringUtils.isNullOrEmpty(value)) {
@ -228,7 +227,6 @@ public final class JaegerPropagator implements TextMapPropagator {
return builder == null ? null : builder.build();
}
@SuppressWarnings("StringSplitter")
private static BaggageBuilder parseBaggageHeader(String header, BaggageBuilder builder) {
for (String part : header.split("\\s*,\\s*")) {
String[] kv = part.split("\\s*=\\s*");
@ -256,7 +254,7 @@ public final class JaegerPropagator implements TextMapPropagator {
}
return SpanContext.createFromRemoteParent(
otelTraceId, otelSpanId, traceFlags, TraceState.getDefault());
} catch (Exception e) {
} catch (RuntimeException e) {
logger.log(
Level.FINE,
"Error parsing '" + PROPAGATION_HEADER + "' header. Returning INVALID span context.",

View File

@ -127,7 +127,7 @@ public class Application {
String argumentsJson = gson.toJson(req.getArguments());
RequestBody argumentsBody =
RequestBody.create(
MediaType.parse("application/json; charset=utf-8"), argumentsJson);
argumentsJson, MediaType.parse("application/json; charset=utf-8"));
okhttp3.Request newRequest = reqBuilder.url(req.getUrl()).post(argumentsBody).build();
// Execute the request

View File

@ -28,14 +28,13 @@ import io.opencensus.trace.SpanBuilder;
import io.opencensus.trace.SpanContext;
import io.opencensus.trace.Tracer;
import io.opencensus.trace.config.TraceConfig;
import io.opentelemetry.opencensusshim.OpenTelemetrySpanBuilderImpl.Options;
import javax.annotation.Nullable;
class OpenTelemetryTracerImpl extends Tracer {
private final OpenTelemetrySpanBuilderImpl.Options spanBuilderOptions;
public OpenTelemetryTracerImpl(RandomHandler randomHandler, TraceConfig traceConfig) {
spanBuilderOptions = new Options(randomHandler, traceConfig);
spanBuilderOptions = new OpenTelemetrySpanBuilderImpl.Options(randomHandler, traceConfig);
}
@Override

View File

@ -78,7 +78,7 @@ final class TracerShim extends BaseShimObject implements Tracer {
|| format == Format.Builtin.HTTP_HEADERS) {
return propagation.extractTextMap((TextMapExtract) carrier);
}
} catch (Exception e) {
} catch (RuntimeException e) {
logger.log(
Level.INFO,
"Exception caught while extracting span context; returning null. "

View File

@ -66,12 +66,15 @@ class TestClientServerTest {
assertThat(finished.get(1).getTraceId()).isEqualTo(finished.get(0).getTraceId());
Kind firstSpanKind = finished.get(0).getKind();
if (firstSpanKind == Kind.CLIENT) {
assertThat(finished.get(1).getKind()).isEqualTo(Kind.SERVER);
} else if (firstSpanKind == Kind.SERVER) {
assertThat(finished.get(1).getKind()).isEqualTo(Kind.CLIENT);
} else {
fail("Unexpected first span kind: " + firstSpanKind);
switch (firstSpanKind) {
case CLIENT:
assertThat(finished.get(1).getKind()).isEqualTo(Kind.SERVER);
break;
case SERVER:
assertThat(finished.get(1).getKind()).isEqualTo(Kind.CLIENT);
break;
default:
fail("Unexpected first span kind: " + firstSpanKind);
}
assertThat(tracer.scopeManager().activeSpan()).isNull();

View File

@ -43,7 +43,7 @@ public final class ErrorReportingTest {
Span span = tracer.buildSpan("one").start();
try (Scope scope = tracer.activateSpan(span)) {
throw new RuntimeException("Invalid state");
} catch (Exception e) {
} catch (RuntimeException e) {
Tags.ERROR.set(span, true);
} finally {
span.finish();
@ -64,7 +64,7 @@ public final class ErrorReportingTest {
() -> {
try (Scope scope = tracer.activateSpan(span)) {
throw new RuntimeException("Invalid state");
} catch (Exception exc) {
} catch (RuntimeException exc) {
Tags.ERROR.set(span, true);
} finally {
span.finish();
@ -90,7 +90,7 @@ public final class ErrorReportingTest {
while (retries++ < maxRetries) {
try {
throw new RuntimeException("No url could be fetched");
} catch (final Exception exc) {
} catch (RuntimeException exc) {
Map<String, Object> errorMap = new HashMap<>();
errorMap.put(Fields.EVENT, Tags.ERROR.getKey());
errorMap.put(Fields.ERROR_OBJECT, exc);
@ -128,7 +128,7 @@ public final class ErrorReportingTest {
() -> {
try {
throw new RuntimeException("Invalid state");
} catch (Exception exc) {
} catch (RuntimeException exc) {
Tags.ERROR.set(tracer.activeSpan(), true);
} finally {
tracer.activeSpan().finish();

View File

@ -66,7 +66,7 @@ public final class JaegerRemoteSampler implements Sampler {
SamplingStrategyParameters.newBuilder().setServiceName(this.serviceName).build();
SamplingStrategyResponse response = stub.getSamplingStrategy(params);
this.sampler = updateSampler(response);
} catch (Exception e) { // keep the timer thread alive
} catch (RuntimeException e) { // keep the timer thread alive
logger.log(Level.WARNING, "Failed to update sampler", e);
}
}

View File

@ -20,7 +20,6 @@ import io.grpc.inprocess.InProcessServerBuilder;
import io.grpc.stub.StreamObserver;
import io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling;
import io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling.RateLimitingSamplingStrategy;
import io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling.SamplingStrategyParameters;
import io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling.SamplingStrategyType;
import io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.SamplingManagerGrpc;
import io.opentelemetry.sdk.trace.samplers.Sampler;
@ -93,7 +92,7 @@ class JaegerRemoteSamplerTest {
@Test
void connectionWorks() throws Exception {
ArgumentCaptor<SamplingStrategyParameters> requestCaptor =
ArgumentCaptor<Sampling.SamplingStrategyParameters> requestCaptor =
ArgumentCaptor.forClass(Sampling.SamplingStrategyParameters.class);
JaegerRemoteSampler sampler =

View File

@ -172,7 +172,7 @@ public final class BatchLogProcessor implements LogProcessor {
} else {
exporterFailureCounter.add(1);
}
} catch (Exception t) {
} catch (RuntimeException t) {
exporterFailureCounter.add(batch.size());
} finally {
batch.clear();

View File

@ -15,7 +15,6 @@ import io.opentelemetry.api.trace.TraceFlags;
import io.opentelemetry.api.trace.TraceId;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logging.data.LogRecord;
import io.opentelemetry.sdk.logging.data.LogRecord.Severity;
import io.opentelemetry.sdk.logging.export.BatchLogProcessor;
import io.opentelemetry.sdk.logging.util.TestLogExporter;
import io.opentelemetry.sdk.logging.util.TestLogProcessor;
@ -47,12 +46,13 @@ class LogSinkSdkProviderTest {
LogSinkSdkProvider provider = new LogSinkSdkProvider.Builder().build();
provider.addLogProcessor(processor);
LogSink sink = provider.get("test", "0.1a");
LogRecord log = createLog(Severity.ERROR, "test");
LogRecord log = createLog(LogRecord.Severity.ERROR, "test");
sink.offer(log);
provider.forceFlush().join(500, TimeUnit.MILLISECONDS);
List<LogRecord> records = exporter.getRecords();
assertThat(records).singleElement().isEqualTo(log);
assertThat(log.getSeverity().getSeverityNumber()).isEqualTo(Severity.ERROR.getSeverityNumber());
assertThat(log.getSeverity().getSeverityNumber())
.isEqualTo(LogRecord.Severity.ERROR.getSeverityNumber());
}
@Test
@ -69,7 +69,7 @@ class LogSinkSdkProviderTest {
LogSink sink = provider.get("test", "0.1a");
for (int i = 0; i < 7; i++) {
sink.offer(createLog(Severity.WARN, "test #" + i));
sink.offer(createLog(LogRecord.Severity.WARN, "test #" + i));
}
// Ensure that more than batch size kicks off a flush
await().atMost(Duration.ofSeconds(5)).until(() -> exporter.getRecords().size() > 0);
@ -103,7 +103,7 @@ class LogSinkSdkProviderTest {
long start = System.currentTimeMillis();
int testRecordCount = 700;
for (int i = 0; i < testRecordCount; i++) {
sink.offer(createLog(Severity.WARN, "test #" + i));
sink.offer(createLog(LogRecord.Severity.WARN, "test #" + i));
}
long end = System.currentTimeMillis();
assertThat(end - start).isLessThan(250L);

View File

@ -19,7 +19,6 @@ import io.opentelemetry.api.trace.StatusCode;
import io.opentelemetry.proto.trace.v1.InstrumentationLibrarySpans;
import io.opentelemetry.proto.trace.v1.ResourceSpans;
import io.opentelemetry.proto.trace.v1.Span;
import io.opentelemetry.proto.trace.v1.Span.SpanKind;
import io.opentelemetry.proto.trace.v1.Status;
import io.opentelemetry.sdk.common.InstrumentationLibraryInfo;
import io.opentelemetry.sdk.resources.Resource;
@ -126,7 +125,7 @@ public final class SpanAdapter {
case CONSUMER:
return SPAN_KIND_CONSUMER;
}
return SpanKind.UNRECOGNIZED;
return Span.SpanKind.UNRECOGNIZED;
}
static Span.Event toProtoSpanEvent(EventData event) {

View File

@ -441,37 +441,39 @@ final class TracezZPageHandler extends ZPageHandler {
if (typeStr != null) {
List<SpanData> spans = null;
SampleType type = SampleType.fromString(typeStr);
if (type == SampleType.UNKNOWN) {
// Type of unknown is garbage value
return;
} else if (type == SampleType.RUNNING) {
// Display running span
spans = dataAggregator.getRunningSpans(spanName);
} else {
String subtypeStr = queryMap.get(PARAM_SAMPLE_SUB_TYPE);
if (subtypeStr != null) {
int subtype = Integer.parseInt(subtypeStr);
if (type == SampleType.LATENCY) {
if (subtype < 0 || subtype >= LatencyBoundary.values().length) {
// N/A or out-of-bound check for latency based subtype, valid values: [0, 8]
return;
switch (type) {
case UNKNOWN:
// Type of unknown is garbage value
return;
case RUNNING:
// Display running span
spans = dataAggregator.getRunningSpans(spanName);
break;
default:
String subtypeStr = queryMap.get(PARAM_SAMPLE_SUB_TYPE);
if (subtypeStr != null) {
int subtype = Integer.parseInt(subtypeStr);
if (type == SampleType.LATENCY) {
if (subtype < 0 || subtype >= LatencyBoundary.values().length) {
// N/A or out-of-bound check for latency based subtype, valid values: [0, 8]
return;
}
// Display latency based span
LatencyBoundary latencyBoundary = LatencyBoundary.values()[subtype];
spans =
dataAggregator.getOkSpans(
spanName,
latencyBoundary.getLatencyLowerBound(),
latencyBoundary.getLatencyUpperBound());
} else {
if (subtype < 0 || subtype >= StatusCode.values().length) {
// N/A or out-of-bound cueck for error based subtype, valid values: [0, 15]
return;
}
// Display error based span
spans = dataAggregator.getErrorSpans(spanName);
}
// Display latency based span
LatencyBoundary latencyBoundary = LatencyBoundary.values()[subtype];
spans =
dataAggregator.getOkSpans(
spanName,
latencyBoundary.getLatencyLowerBound(),
latencyBoundary.getLatencyUpperBound());
} else {
if (subtype < 0 || subtype >= StatusCode.values().length) {
// N/A or out-of-bound cueck for error based subtype, valid values: [0, 15]
return;
}
// Display error based span
spans = dataAggregator.getErrorSpans(spanName);
}
}
}
out.print("<h2>Span Details</h2>");
emitSpanNameAndCount(out, spanName, spans == null ? 0 : spans.size(), type);

View File

@ -86,7 +86,7 @@ class OpenTelemetrySdkTest {
void testConfiguration_tracerSettings() {
Resource resource = Resource.create(Attributes.builder().put("cat", "meow").build());
IdGenerator idGenerator = mock(IdGenerator.class);
TraceConfig traceConfig = mock(TraceConfig.class);
TraceConfig traceConfig = TraceConfig.getDefault();
OpenTelemetrySdk openTelemetry =
OpenTelemetrySdk.builder()
.setTracerProvider(

View File

@ -96,7 +96,7 @@ public final class IntervalMetricReader {
}
exportAvailable.set(true);
});
} catch (Exception e) {
} catch (RuntimeException e) {
logger.log(Level.WARNING, "Exporter threw an Exception", e);
}
} else {

View File

@ -51,7 +51,6 @@ class IntervalMetricReaderTest {
/* isMonotonic= */ true, AggregationTemporality.CUMULATIVE, LONG_POINT_LIST));
@Mock private MetricProducer metricProducer;
@Mock private MetricExporter metricExporter;
@BeforeEach
void setup() {

View File

@ -263,7 +263,7 @@ public final class BatchSpanProcessor implements SpanProcessor {
} else {
logger.log(Level.FINE, "Exporter failed");
}
} catch (Exception e) {
} catch (RuntimeException e) {
logger.log(Level.WARNING, "Exporter threw an Exception", e);
} finally {
batch.clear();

View File

@ -42,7 +42,7 @@ final class MultiSpanExporter implements SpanExporter {
final CompletableResultCode exportResult;
try {
exportResult = spanExporter.export(spans);
} catch (Exception e) {
} catch (RuntimeException e) {
// If an exception was thrown by the exporter
logger.log(Level.WARNING, "Exception thrown by the export.", e);
results.add(CompletableResultCode.ofFailure());
@ -65,7 +65,7 @@ final class MultiSpanExporter implements SpanExporter {
final CompletableResultCode flushResult;
try {
flushResult = spanExporter.flush();
} catch (Exception e) {
} catch (RuntimeException e) {
// If an exception was thrown by the exporter
logger.log(Level.WARNING, "Exception thrown by the flush.", e);
results.add(CompletableResultCode.ofFailure());
@ -83,7 +83,7 @@ final class MultiSpanExporter implements SpanExporter {
final CompletableResultCode shutdownResult;
try {
shutdownResult = spanExporter.shutdown();
} catch (Exception e) {
} catch (RuntimeException e) {
// If an exception was thrown by the exporter
logger.log(Level.WARNING, "Exception thrown by the shutdown.", e);
results.add(CompletableResultCode.ofFailure());

View File

@ -71,7 +71,7 @@ public final class SimpleSpanProcessor implements SpanProcessor {
logger.log(Level.FINE, "Exporter failed");
}
});
} catch (Exception e) {
} catch (RuntimeException e) {
logger.log(Level.WARNING, "Exporter threw an Exception", e);
}
}

View File

@ -52,7 +52,6 @@ class SdkTracerProviderTest {
SdkTracerProvider.builder()
.setClock(mock(Clock.class))
.setIdGenerator(mock(IdGenerator.class))
.setTraceConfig(mock(TraceConfig.class))
.build();
assertThat(tracerProvider).isNotNull();
@ -90,7 +89,6 @@ class SdkTracerProviderTest {
.setClock(mock(Clock.class))
.setResource(resource)
.setIdGenerator(mock(IdGenerator.class))
.setTraceConfig(mock(TraceConfig.class))
.build();
assertThat(tracerProvider).isNotNull();
@ -161,7 +159,7 @@ class SdkTracerProviderTest {
@Test
void build_traceConfig() {
TraceConfig initialTraceConfig = mock(TraceConfig.class);
TraceConfig initialTraceConfig = TraceConfig.builder().build();
SdkTracerProvider sdkTracerProvider =
SdkTracerProvider.builder().setTraceConfig(initialTraceConfig).build();

View File

@ -20,7 +20,6 @@ import java.util.Collection;
import java.util.concurrent.atomic.AtomicLong;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
/** Unit tests for {@link SdkTracer}. */
@ -37,7 +36,6 @@ class SdkTracerTest {
private static final InstrumentationLibraryInfo instrumentationLibraryInfo =
InstrumentationLibraryInfo.create(
INSTRUMENTATION_LIBRARY_NAME, INSTRUMENTATION_LIBRARY_VERSION);
@Mock private Span span;
private final SdkTracer tracer =
(SdkTracer)
SdkTracerProvider.builder()

View File

@ -8,7 +8,6 @@ package io.opentelemetry.sdk.trace.testbed.actorpropagation;
import static org.assertj.core.api.Assertions.assertThat;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.Span.Kind;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.context.Scope;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
@ -47,7 +46,7 @@ class ActorPropagationTest {
void testActorTell() {
try (Actor actor = new Actor(tracer, phaser)) {
phaser.register();
Span parent = tracer.spanBuilder("actorTell").setSpanKind(Kind.PRODUCER).startSpan();
Span parent = tracer.spanBuilder("actorTell").setSpanKind(Span.Kind.PRODUCER).startSpan();
parent.setAttribute("component", "example-actor");
try (Scope ignored = parent.makeCurrent()) {
actor.tell("my message 1");
@ -80,7 +79,7 @@ class ActorPropagationTest {
phaser.register();
Future<String> future1;
Future<String> future2;
Span span = tracer.spanBuilder("actorAsk").setSpanKind(Kind.PRODUCER).startSpan();
Span span = tracer.spanBuilder("actorAsk").setSpanKind(Span.Kind.PRODUCER).startSpan();
span.setAttribute("component", "example-actor");
try (Scope ignored = span.makeCurrent()) {

View File

@ -40,7 +40,7 @@ public final class ErrorReportingTest {
Span span = tracer.spanBuilder("one").startSpan();
try (Scope ignored = span.makeCurrent()) {
throw new RuntimeException("Invalid state");
} catch (Exception e) {
} catch (RuntimeException e) {
span.setStatus(StatusCode.ERROR);
} finally {
span.end();
@ -61,7 +61,7 @@ public final class ErrorReportingTest {
() -> {
try (Scope ignored = span.makeCurrent()) {
throw new RuntimeException("Invalid state");
} catch (Exception exc) {
} catch (RuntimeException exc) {
span.setStatus(StatusCode.ERROR);
} finally {
span.end();
@ -88,7 +88,7 @@ public final class ErrorReportingTest {
while (retries++ < maxRetries) {
try {
throw new RuntimeException("No url could be fetched");
} catch (final Exception exc) {
} catch (RuntimeException exc) {
span.addEvent("error");
}
}
@ -120,7 +120,7 @@ public final class ErrorReportingTest {
() -> {
try {
throw new RuntimeException("Invalid state");
} catch (Exception exc) {
} catch (RuntimeException exc) {
Span.current().setStatus(StatusCode.ERROR);
} finally {
Span.current().end();

View File

@ -25,6 +25,14 @@ plugins {
id "com.gradle.enterprise" version "3.5"
}
dependencyResolutionManagement {
repositories {
mavenCentral()
jcenter()
mavenLocal()
}
}
rootProject.name = "opentelemetry-java"
include ":all",
":api:all",