Automatic Instrumentation

Spring MVC Integration

Sentry Spring Boot 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 Boot integration provides SentrySpanRestTemplateCustomizer that creates a span for each outgoing HTTP request executed with a RestTemplate. To use instrumented RestTemplate make sure to create RestTemplate beans using RestTemplateBuilder:

Copied
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Bean;
import org.springframework.boot.web.client.RestTemplateBuilder;

@Configuration
class AppConfig {
  @Bean
  RestTemplate restTemplate(RestTemplateBuilder builder) {
    return builder.build();
  }
}