All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.sentry.spring.jakarta.opentelemetry.SentryOpenTelemetryNoAgentConfiguration Maven / Gradle / Ivy

There is a newer version: 8.0.0-rc.3
Show newest version
package io.sentry.spring.jakarta.opentelemetry;

import com.jakewharton.nopen.annotation.Open;
import io.opentelemetry.api.OpenTelemetry;
import io.sentry.ISpanFactory;
import io.sentry.Sentry;
import io.sentry.SentryIntegrationPackageStorage;
import io.sentry.SentryOptions;
import io.sentry.opentelemetry.OpenTelemetryUtil;
import io.sentry.opentelemetry.OtelSpanFactory;
import io.sentry.opentelemetry.SentryAutoConfigurationCustomizerProvider;
import org.jetbrains.annotations.NotNull;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration(proxyBeanMethods = false)
@Open
public class SentryOpenTelemetryNoAgentConfiguration {

  @Bean
  @ConditionalOnMissingBean
  public static ISpanFactory openTelemetrySpanFactory(OpenTelemetry openTelemetry) {
    return new OtelSpanFactory(openTelemetry);
  }

  @Bean
  @ConditionalOnMissingBean(name = "sentryOpenTelemetryOptionsConfiguration")
  public @NotNull Sentry.OptionsConfiguration
      sentryOpenTelemetryOptionsConfiguration() {
    return options -> {
      SentryIntegrationPackageStorage.getInstance()
          .addIntegration("SpringBoot3OpenTelemetryNoAgent");
      SentryAutoConfigurationCustomizerProvider.skipInit = true;
      OpenTelemetryUtil.applyOpenTelemetryOptions(options, false);
    };
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy