File tree Expand file tree Collapse file tree 2 files changed +69
-0
lines changed
instrumentation/servlet/servlet-3.0/library Expand file tree Collapse file tree 2 files changed +69
-0
lines changed Original file line number Diff line number Diff line change 1+ # Library Instrumentation for Java Servlet version 3.0 and higher
2+
3+ Provides OpenTelemetry instrumentation for Java Servlets through a servlet filter.
4+
5+ ## Quickstart
6+
7+ ### Add these dependencies to your project
8+
9+ Replace ` OPENTELEMETRY_VERSION ` with
10+ the [ latest release] ( https://central.sonatype.com/artifact/io.opentelemetry.instrumentation/opentelemetry-lettuce-5.1 ) .
11+
12+ For Maven, add to your ` pom.xml ` dependencies:
13+
14+ ``` xml
15+
16+ <dependencies >
17+ <dependency >
18+ <groupId >io.opentelemetry.instrumentation</groupId >
19+ <artifactId >opentelemetry-servlet-3.0</artifactId >
20+ <version >OPENTELEMETRY_VERSION</version >
21+ </dependency >
22+ </dependencies >
23+ ```
24+
25+ For Gradle, add to your dependencies:
26+
27+ ``` kotlin
28+ implementation(" io.opentelemetry.instrumentation:opentelemetry-servlet-3.0:OPENTELEMETRY_VERSION" )
29+ ```
30+
31+ ### Usage
32+
33+ Add the filter to your ` web.xml `
34+
35+ ``` xml
36+ <web-app >
37+ <filter >
38+ <filter-name >OpenTelemetryServletFilter</filter-name >
39+ <filter-class >io.opentelemetry.instrumentation.servlet.v3_0.OpenTelemetryServletFilter
40+ </filter-class >
41+ <async-supported >true</async-supported >
42+ </filter >
43+ <filter-mapping >
44+ <filter-name >OpenTelemetryServletFilter</filter-name >
45+ <url-pattern >/*</url-pattern >
46+ </filter-mapping >
47+ </web-app >
48+ ```
49+
50+ Note: GlobalOpenTelemetry must be set before filter initialization. If you are unable to ensure it
51+ is set first, consider creating a subclass of ` OpenTelemetryServletFilter ` that handles
52+ initialization of GlobalOpenTelemetry in a static initializer or constructor.
Original file line number Diff line number Diff line change @@ -9,6 +9,12 @@ dependencies {
99 testLibrary(" org.eclipse.jetty:jetty-servlet:8.0.0.v20110901" )
1010 testLibrary(" org.apache.tomcat.embed:tomcat-embed-core:8.0.41" )
1111 testLibrary(" org.apache.tomcat.embed:tomcat-embed-jasper:8.0.41" )
12+
13+ latestDepTestLibrary(" org.eclipse.jetty:jetty-server:10.+" )
14+ latestDepTestLibrary(" org.eclipse.jetty:jetty-servlet:10.+" )
15+
16+ latestDepTestLibrary(" org.apache.tomcat.embed:tomcat-embed-core:9.+" )
17+ latestDepTestLibrary(" org.apache.tomcat.embed:tomcat-embed-jasper:9.+" )
1218}
1319
1420tasks {
@@ -18,3 +24,14 @@ tasks {
1824 jvmArgs(" -XX:+IgnoreUnrecognizedVMOptions" )
1925 }
2026}
27+
28+ // Servlet 3.0 in latest Jetty versions requires Java 11
29+ // However, projects that depend on this module are still be using Java 8 in testLatestDeps mode
30+ // Therefore, we need a separate project for servlet 3.0 tests
31+ val latestDepTest = findProperty(" testLatestDeps" ) as Boolean
32+
33+ if (latestDepTest) {
34+ otelJava {
35+ minJavaVersionSupported.set(JavaVersion .VERSION_11 )
36+ }
37+ }
You can’t perform that action at this time.
0 commit comments