Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PF-2983]: Bump the minor-patch-dependencies group with 9 updates #178

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 13 additions & 10 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ plugins {
id 'com.jfrog.artifactory' version '5.2.0'
id 'org.sonarqube' version '5.0.0.4638'
id 'io.spring.dependency-management' version '1.1.4'
id 'org.springframework.boot' version '3.2.3'
id 'org.springframework.boot' version '3.2.5'
id 'ru.vyarus.quality' version '5.0.0'
id 'com.srcclr.gradle' version '3.1.12'
}
Expand All @@ -22,7 +22,7 @@ project.ext {

// Spring Boot 3.2.3 pulls in opentelemetry-bom 1.31.0.
// We need >= 1.32.0 so that our HttpServerMetrics can use Meter.setExplicitBucketBoundariesAdvice:
ext['opentelemetry.version'] = '1.34.1'
ext['opentelemetry.version'] = '1.37.0'

// If true, search local repository (~/.m2/repository/) first for dependencies.
def useMavenLocal = false
Expand Down Expand Up @@ -62,7 +62,7 @@ dependencies {

// Google dependencies
// use common bom
implementation platform('com.google.cloud:libraries-bom:26.35.0')
implementation platform('com.google.cloud:libraries-bom:26.38.0')
implementation group: 'com.google.cloud', name: 'google-cloud-core'
implementation group: 'com.google.cloud', name: 'google-cloud-pubsub'
api group: 'com.google.guava', name: 'guava'
Expand All @@ -73,7 +73,7 @@ dependencies {

// Terra libraries
implementation group: 'org.broadinstitute.dsde.workbench', name: 'sam-client_2.13', version: '0.1-0c4b377'
var stairwayVersion= '1.0.7-SNAPSHOT'
var stairwayVersion= '1.1.1-SNAPSHOT'
api "bio.terra:stairway-gcp:${stairwayVersion}"
implementation "bio.terra:stairway-azure:${stairwayVersion}"

Expand All @@ -83,9 +83,9 @@ dependencies {
implementation group: 'ch.qos.logback.contrib', name: 'logback-jackson', version: '0.1.5'

// OpenTelemetry BOMs (opentelemetry-bom versioned by Spring dependency manager)
implementation platform('io.opentelemetry:opentelemetry-bom-alpha:1.34.1-alpha')
implementation platform('io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:2.0.0')
implementation platform('io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:2.0.0-alpha')
implementation platform('io.opentelemetry:opentelemetry-bom-alpha:1.37.0-alpha')
implementation platform('io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:2.3.0')
implementation platform('io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:2.3.0-alpha')
// OpenTelemetry dependencies versioned by BOMs
api 'io.opentelemetry:opentelemetry-api'
implementation 'io.opentelemetry:opentelemetry-sdk'
Expand All @@ -96,11 +96,14 @@ dependencies {
implementation 'io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations'
implementation 'io.opentelemetry.instrumentation:opentelemetry-spring-boot'
implementation 'io.opentelemetry:opentelemetry-exporter-prometheus'
implementation 'io.opentelemetry:opentelemetry-extension-incubator'
implementation 'io.opentelemetry:opentelemetry-api-incubator'
implementation 'io.opentelemetry:opentelemetry-sdk-extension-autoconfigure'
implementation 'io.opentelemetry:opentelemetry-exporter-otlp'
implementation 'org.springframework.boot:spring-boot-autoconfigure'

// Google cloud open telemetry exporters
implementation 'com.google.cloud.opentelemetry:exporter-trace:0.27.0'
implementation 'com.google.cloud.opentelemetry:exporter-metrics:0.27.0'
implementation 'com.google.cloud.opentelemetry:exporter-trace:0.28.0'
implementation 'com.google.cloud.opentelemetry:exporter-metrics:0.28.0'

// Testing
testImplementation 'org.springframework:spring-aspects' // for tracing in tests
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@

package bio.terra.common.opentelemetry;

import static io.opentelemetry.semconv.ErrorAttributes.ERROR_TYPE;
import static java.util.Arrays.asList;

import io.opentelemetry.api.incubator.metrics.ExtendedDoubleHistogramBuilder;
import io.opentelemetry.api.metrics.DoubleHistogramBuilder;
import io.opentelemetry.extension.incubator.metrics.ExtendedDoubleHistogramBuilder;
import io.opentelemetry.instrumentation.api.semconv.http.internal.HttpAttributes;
import io.opentelemetry.semconv.SemanticAttributes;
import java.util.List;
import java.util.stream.DoubleStream;
Expand Down Expand Up @@ -54,7 +54,7 @@ static void applyClientDurationAdvice(DoubleHistogramBuilder builder) {
asList(
SemanticAttributes.HTTP_REQUEST_METHOD,
SemanticAttributes.HTTP_RESPONSE_STATUS_CODE,
HttpAttributes.ERROR_TYPE,
ERROR_TYPE,
SemanticAttributes.NETWORK_PROTOCOL_NAME,
SemanticAttributes.NETWORK_PROTOCOL_VERSION,
SemanticAttributes.SERVER_ADDRESS,
Expand All @@ -71,7 +71,7 @@ static void applyServerDurationAdvice(DoubleHistogramBuilder builder) {
SemanticAttributes.HTTP_ROUTE,
SemanticAttributes.HTTP_REQUEST_METHOD,
SemanticAttributes.HTTP_RESPONSE_STATUS_CODE,
HttpAttributes.ERROR_TYPE,
ERROR_TYPE,
SemanticAttributes.NETWORK_PROTOCOL_NAME,
SemanticAttributes.NETWORK_PROTOCOL_VERSION,
SemanticAttributes.URL_SCHEME));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,9 @@

import bio.terra.common.tracing.ExcludingUrlSampler;
import io.opentelemetry.instrumentation.spring.autoconfigure.EnableOpenTelemetry;
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider;
import io.opentelemetry.sdk.metrics.InstrumentSelector;
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
import io.opentelemetry.sdk.metrics.View;
import io.opentelemetry.sdk.metrics.export.MetricReader;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.trace.SdkTracerProvider;
import io.opentelemetry.sdk.trace.SpanProcessor;
import io.opentelemetry.sdk.trace.samplers.Sampler;
import java.util.Optional;
Expand All @@ -16,7 +13,6 @@
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.util.Pair;

@Configuration
Expand All @@ -26,39 +22,30 @@ public class OpenTelemetryConfig {

public static final Set<String> DEFAULT_EXCLUDED_URLS = Set.of("/status", "/version");

/**
* Creates an OpenTelemetry {@link SdkMeterProvider} with all metrics readers and views in the
* spring context
*/
/** Customizes the OpenTelemetry SDK sampling and adds all views and span processors. */
@Bean
@Primary
public SdkMeterProvider terraMeterProvider(
Resource otelResource,
ObjectProvider<MetricReader> metricReaders,
ObjectProvider<Pair<InstrumentSelector, View>> views) {
var sdkMeterProviderBuilder = SdkMeterProvider.builder().addResource(otelResource);
metricReaders.stream().forEach(sdkMeterProviderBuilder::registerMetricReader);
views.stream()
.forEach(pair -> sdkMeterProviderBuilder.registerView(pair.getFirst(), pair.getSecond()));
return sdkMeterProviderBuilder.build();
}
public AutoConfigurationCustomizerProvider otelCustomizer(
TracingProperties tracingProperties,
ObjectProvider<Pair<InstrumentSelector, View>> views,
ObjectProvider<SpanProcessor> spanProcessors) {
return customizer -> {
customizer.addMeterProviderCustomizer(
(builder, unused) -> {
views.stream().forEach(pair -> builder.registerView(pair.getFirst(), pair.getSecond()));
return builder;
});

/**
* Creates an OpenTelemetry {@link SdkTracerProvider} with all span processors in the spring
* context
*/
@Bean
@Primary
public SdkTracerProvider terraTraceProvider(
Resource resource,
ObjectProvider<SpanProcessor> spanProcessors,
TracingProperties tracingProperties) {
var tracerProviderBuilder = SdkTracerProvider.builder().setResource(resource);
spanProcessors.stream().forEach(tracerProviderBuilder::addSpanProcessor);
tracerProviderBuilder.setSampler(
new ExcludingUrlSampler(
Optional.ofNullable(tracingProperties.excludedUrls()).orElse(DEFAULT_EXCLUDED_URLS),
Sampler.parentBased(Sampler.traceIdRatioBased(tracingProperties.samplingRatio()))));
return tracerProviderBuilder.build();
customizer.addTracerProviderCustomizer(
(builder, unused) -> {
spanProcessors.stream().forEach(builder::addSpanProcessor);
builder.setSampler(
new ExcludingUrlSampler(
Optional.ofNullable(tracingProperties.excludedUrls())
.orElse(DEFAULT_EXCLUDED_URLS),
Sampler.parentBased(
Sampler.traceIdRatioBased(tracingProperties.samplingRatio()))));
return builder;
});
};
}
}
Loading