Order rules alphabetically and ensure matches.

This commit is contained in:
Tyler Benson 2017-08-22 16:39:08 -07:00
parent 60cfb392c4
commit 55edba486a
4 changed files with 123 additions and 101 deletions

View File

@ -9,7 +9,7 @@
</layout>
</appender>
<root level="INFO">
<root level="DEBUG">
<appender-ref ref="console"/>
</root>

View File

@ -123,6 +123,8 @@ public class TraceAnnotationsManager {
return scripts;
}
log.debug("Loading rules with classloader {}", classLoader == null ? "bootstrap" : classLoader);
final List<String> scriptNames = new ArrayList<>();
// Load default and custom rules
@ -140,7 +142,7 @@ public class TraceAnnotationsManager {
log.warn("Failed to install scripts", e);
}
}
log.trace(sw.toString());
log.debug(sw.toString());
} catch (IOException | URISyntaxException e) {
log.warn("Failed to load OpenTracing agent rules", e);
}

View File

@ -34,35 +34,14 @@ opentracing-cassandra-driver:
- com.datastax.driver.core.RemoteEndpointAwareNettySSLOptions
- com.datastax.driver.core.GuavaCompatibility
opentracing-web-servlet-filter:
- artifact: jetty-server
supported_version: (8\.|9\.).*
# identifying_present_classes:
- artifact: tomcat_catalina
supported_version: (8\.|9\.).*
opentracing-jms-2_producer:
- artifact: javax.jms-api
supported_version: 2\..*
identifying_present_classes:
- org.apache.catalina.WebResource
- org.apache.catalina.webresources.TrackedInputStream
- org.apache.catalina.webresources.AbstractArchiveResource
- javax.jms.JMSContext
- javax.jms.CompletionListener
- artifact: tomcat-embed-core
supported_version: (8\.|9\.).*
identifying_present_classes:
- org.apache.catalina.WebResource
- org.apache.catalina.webresources.TrackedInputStream
- org.apache.catalina.webresources.AbstractArchiveResource
opentracing-okhttp3:
- artifact: okhttp
supported_version: 3\..*
identifying_present_classes:
- okhttp3.Cookie
- okhttp3.ConnectionPool
- okhttp3.Headers
# For rules opentracing-jms-2_{consumer,producer}
opentracing-jms-2:
opentracing-jms-2_consumer:
- artifact: javax.jms-api
supported_version: 2\..*
identifying_present_classes:
@ -82,3 +61,45 @@ opentracing-mongo-driver:
identifying_present_classes:
- com.mongodb.operation.AsyncReadOperation
- com.mongodb.client.model.MapReduceAction
opentracing-mongo-driver-helper:
- artifact: mongo-java-driver
supported_version: 3\..*
identifying_present_classes:
- com.mongodb.operation.AsyncReadOperation
- com.mongodb.client.model.MapReduceAction
- check:
artifact: mongodb-driver-async
supported_version: 3\..*
identifying_present_classes:
- com.mongodb.operation.AsyncReadOperation
- com.mongodb.client.model.MapReduceAction
opentracing-okhttp3:
- artifact: okhttp
supported_version: 3\..*
identifying_present_classes:
- okhttp3.Cookie
- okhttp3.ConnectionPool
- okhttp3.Headers
opentracing-web-servlet-filter_jetty:
- artifact: jetty-server
supported_version: (8\.|9\.).*
# identifying_present_classes:
opentracing-web-servlet-filter_tomcat:
- artifact: opentracing-web-servlet-filter_tomcat
supported_version: (8\.|9\.).*
identifying_present_classes:
- org.apache.catalina.WebResource
- org.apache.catalina.webresources.TrackedInputStream
- org.apache.catalina.webresources.AbstractArchiveResource
- artifact: opentracing-web-servlet-filter_tomcat
supported_version: (8\.|9\.).*
identifying_present_classes:
- org.apache.catalina.WebResource
- org.apache.catalina.webresources.TrackedInputStream
- org.apache.catalina.webresources.AbstractArchiveResource

View File

@ -8,26 +8,16 @@
###
# Instrument Mongo client
# ========================
RULE opentracing-mongo-driver
CLASS com.mongodb.MongoClientOptions$Builder
METHOD build
HELPER com.datadoghq.trace.agent.integration.MongoHelper
AT ENTRY
IF getState($0) == 0
DO
patch($this);
ENDRULE
RULE mongo-decorator
CLASS io.opentracing.contrib.mongo.TracingCommandListener
METHOD decorate
HELPER com.datadoghq.trace.agent.integration.MongoHelper
# Instrument Apache HTTP Client
# =============================
RULE opentracing-apache-httpclient
CLASS org.apache.http.impl.client.HttpClientBuilder
METHOD create()
HELPER com.datadoghq.trace.agent.integration.ApacheHTTPClientHelper
AT EXIT
IF TRUE
DO
decorate($1, $2);
$! = patch($!);
ENDRULE
@ -45,19 +35,6 @@ DO
ENDRULE
# Instrument Apache HTTP Client
# =============================
RULE opentracing-apache-httpclient
CLASS org.apache.http.impl.client.HttpClientBuilder
METHOD create()
HELPER com.datadoghq.trace.agent.integration.ApacheHTTPClientHelper
AT EXIT
IF TRUE
DO
$! = patch($!);
ENDRULE
# Instrument Cassandra client
# ===========================
RULE opentracing-cassandra-driver
@ -71,48 +48,6 @@ DO
ENDRULE
# Instrument Jetty
# ===========================
# State 0 - no filter installed
# State 1 - filter installed
RULE opentracing-web-servlet-filter_jetty
CLASS org.eclipse.jetty.servlet.ServletContextHandler
METHOD <init>
HELPER com.datadoghq.trace.agent.integration.JettyServletHelper
AT EXIT
IF getState($0.getServletContext()) == 0
DO
patch($this)
ENDRULE
# Instrument Tomcat
# ===========================
RULE opentracing-web-servlet-filter_tomcat
CLASS org.apache.catalina.core.ApplicationContext
METHOD <init>
IMPORT javax.servlet.Filter
HELPER com.datadoghq.trace.agent.integration.TomcatServletHelper
AT EXIT
IF TRUE
DO
patch($this)
ENDRULE
# Instrument OkHttp
# ===========================
RULE opentracing-okhttp3
CLASS okhttp3.OkHttpClient$Builder
METHOD build()
HELPER com.datadoghq.trace.agent.integration.OkHttpHelper
AT ENTRY
IF TRUE
DO
patch($this)
ENDRULE
# Instrument JMS
# ===========================
RULE opentracing-jms-2_producer
@ -136,3 +71,67 @@ DO
$! = patch($!);
ENDRULE
# Instrument Mongo client
# ========================
RULE opentracing-mongo-driver
CLASS com.mongodb.MongoClientOptions$Builder
METHOD build
HELPER com.datadoghq.trace.agent.integration.MongoHelper
AT ENTRY
IF getState($0) == 0
DO
patch($this);
ENDRULE
RULE opentracing-mongo-driver-helper
CLASS io.opentracing.contrib.mongo.TracingCommandListener
METHOD decorate
HELPER com.datadoghq.trace.agent.integration.MongoHelper
AT EXIT
IF TRUE
DO
decorate($1, $2);
ENDRULE
# Instrument OkHttp
# ===========================
RULE opentracing-okhttp3
CLASS okhttp3.OkHttpClient$Builder
METHOD build()
HELPER com.datadoghq.trace.agent.integration.OkHttpHelper
AT ENTRY
IF TRUE
DO
patch($this)
ENDRULE
# Instrument Servlet - Jetty
# ===========================
# State 0 - no filter installed
# State 1 - filter installed
RULE opentracing-web-servlet-filter_jetty
CLASS org.eclipse.jetty.servlet.ServletContextHandler
METHOD <init>
HELPER com.datadoghq.trace.agent.integration.JettyServletHelper
AT EXIT
IF getState($0.getServletContext()) == 0
DO
patch($this)
ENDRULE
# Instrument Servlet - Tomcat
# ===========================
RULE opentracing-web-servlet-filter_tomcat
CLASS org.apache.catalina.core.ApplicationContext
METHOD <init>
HELPER com.datadoghq.trace.agent.integration.TomcatServletHelper
AT EXIT
IF TRUE
DO
patch($this)
ENDRULE