29324 started a discussion in the team and we decided to reorganize and rename types in the HTTP Observation support.

The work being done in spring-projects/spring-graphql#501 (where several observations are created with a single instrumentation) also influenced the changes in this issue.

While being quite late in the release cycle, all observation classes are new as of 6.0 and we think that getting the package structure right is worth the disruption.

In summary, we'd like to:

  • name the instrumentation classes with the space they're creating observations for. So HttpRequestsObservationFilter becomes ServerHttpObservationFilter. (same for other variants, client/server and servlet/reactive)
  • name the convention and context classes with the observation name, avoid plurals. so HttpRequestsObservationConvention becomes HttpRequestObservationConvention
  • move the base server observation classes from org.springframework.web.observation to org.springframework.http.observation, and the filters to org.springframework.web.filter
  • remove HttpOutcome entirely and move specific bits as package private implementation