Remove outdated info from servlet README.md (#5903)
This commit is contained in:
parent
2c4acd7c81
commit
2e912eb346
|
@ -13,20 +13,13 @@ We support Servlet API starting from version 2.2.
|
||||||
But various instrumentations apply to different versions of the API.
|
But various instrumentations apply to different versions of the API.
|
||||||
|
|
||||||
They are divided into the following sub-modules:
|
They are divided into the following sub-modules:
|
||||||
- `servlet-common` contains shared code for both `javax.servlet` and `jakarta.servlet` packages
|
- `servlet-common` contains shared code for both `javax.servlet` and `jakarta.servlet` packages.
|
||||||
- `library` contains the abstract tracer applicable to all servlet versions given an
|
- Version-specific modules contain the version-specific instrumentations and request/response
|
||||||
implementation of `ServletAccessor` to access request and response objects of the specific
|
accessor.
|
||||||
version
|
- `servlet-javax-common` contains instrumentations common for Servlet API versions `[2.2, 5)`
|
||||||
- `javaagent` contains shared type instrumentations which can be used by version specific modules
|
- `servlet-2.2` contains instrumentation for Servlet API versions `[2.2, 3)`
|
||||||
by specifying the base package and advice class to use with them. Contains some helper classes
|
- `servlet-3.0` contains instrumentation for Servlet API versions `[3.0, 5)`
|
||||||
used by advices to reduce code duplication. It does not define any instrumentation modules and
|
- `servlet-5.0` contains instrumentation for Servlet API versions `[5,)`
|
||||||
is used only as a dependency for other `javaagent` modules.
|
|
||||||
- Version-specific modules where `library` contains the version-specific tracer and request/response
|
|
||||||
accessor, and `javaagent` contains the instrumentation modules and advices.
|
|
||||||
- `servlet-javax-common` contains instrumentations/abstract tracer common for Servlet API versions `[2.2, 5)`
|
|
||||||
- `servlet-2.2` contains instrumentations/tracer for Servlet API versions `[2.2, 3)`
|
|
||||||
- `servlet-3.0` contains instrumentations/tracer for Servlet API versions `[3.0, 5)`
|
|
||||||
- `servlet-5.0` contains instrumentations/tracer for Servlet API versions `[5,)`
|
|
||||||
|
|
||||||
## Implementation details
|
## Implementation details
|
||||||
|
|
||||||
|
@ -72,14 +65,15 @@ At last, request processing may reach the specific framework that your applicati
|
||||||
In this case Spring MVC and `OwnerController.initCreationForm`.
|
In this case Spring MVC and `OwnerController.initCreationForm`.
|
||||||
|
|
||||||
If all instrumentations are enabled, then a new span will be created for every highlighted frame.
|
If all instrumentations are enabled, then a new span will be created for every highlighted frame.
|
||||||
All spans from Servlet API will have `kind=SERVER` and name based on corresponding class and method names,
|
All spans from Servlet API will have `kind=SERVER` and name based on request method, such as `HTTP GET`,
|
||||||
such as `ApplicationFilterChain.doFilter` or `FrameworkServlet.doGet`.
|
or servlet/filter mapping corresponding to the requested path, such as `/foo/bar/*`.
|
||||||
Span created by Spring MVC instrumentation will have `kind=INTERNAL` and named `OwnerController.initCreationForm`.
|
Span created by Spring MVC instrumentation will have `kind=INTERNAL` and named `OwnerController.initCreationForm`.
|
||||||
|
|
||||||
The state described above has one significant problem.
|
The state described above has one significant problem.
|
||||||
Observability backends usually aggregate traces based on their root spans.
|
Observability backends usually aggregate traces based on their root spans.
|
||||||
This means that ALL traces from any application deployed to Servlet container will be grouped together.
|
This means that for applications with a single controller Servlet that services all requests ALL
|
||||||
Because their root spans will all have the same named based on common entry point.
|
traces from that application will be grouped together because their root spans will all have the same
|
||||||
|
named based on common entry point.
|
||||||
In order to alleviate this problem, instrumentations for specific frameworks, such as Spring MVC here,
|
In order to alleviate this problem, instrumentations for specific frameworks, such as Spring MVC here,
|
||||||
_update_ name of the span corresponding to the entry point.
|
_update_ name of the span corresponding to the entry point.
|
||||||
Each framework instrumentation can decide what is the best span name based on framework implementation details.
|
Each framework instrumentation can decide what is the best span name based on framework implementation details.
|
||||||
|
|
Loading…
Reference in New Issue