Automatic Instrumentation
Capturing transactions requires that you first set up performance monitoring if you haven't already.
Spring MVC Integration
Sentry Spring integration, once enabled, captures each incoming Spring MVC HTTP request and turns it into a transaction with SentryTracingFilter
. Transaction names follow pattern <HTTP method> <Spring MVC route>
, for example for a request to a following controller:
Copied
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@RestController
class HelloController {
@GetMapping("/person/{id}")
Person person(@PathVariable Long id) {
...
}
}
Each sampled request executed by this controller method will be turned into a transaction GET /person/{id}
.
RestTemplate Instrumentation
Sentry Spring integration provides SentrySpanClientHttpRequestInterceptor
that creates a span for each outgoing HTTP request executed with a RestTemplate
. To use instrumented RestTemplate
make sure to set interceptor on the RestTemplate
bean:
Copied
import io.sentry.IHub;
import io.sentry.spring.tracing.SentrySpanClientHttpRequestInterceptor;
import java.util.Collections;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriTemplateHandler;
@Configuration
class AppConfig {
@Bean
RestTemplate restTemplate(IHub hub) {
RestTemplate restTemplate = new RestTemplate();
SentrySpanClientHttpRequestInterceptor sentryRestTemplateInterceptor =
new SentrySpanClientHttpRequestInterceptor(hub);
restTemplate.setInterceptors(Collections.singletonList(sentryRestTemplateInterceptor));
return restTemplate;
}
}
- Package:
- maven:io.sentry:sentry-spring
- Version:
- 7.13.0
- Repository:
- https://github.com/getsentry/sentry-java