Commit Graph

3593 Commits

Author SHA1 Message Date
Tyler Benson c370705259
Merge pull request #46 from open-telemetry/otel-dd-merged
Merge changes from dd-trace-java 0.40.0
2020-01-03 10:54:51 -08:00
Tyler Benson e84e6eb25d Merge changes from dd-trace-java 0.40.0
https://github.com/DataDog/dd-trace-java/releases/tag/v0.40.0

# Conflicts:
#	dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java
#	dd-java-agent/instrumentation/akka-http-10.0/src/test/groovy/AkkaHttpServerInstrumentationTest.groovy
#	dd-java-agent/instrumentation/dropwizard/src/test/groovy/DropwizardTest.groovy
#	dd-java-agent/instrumentation/glassfish/src/test/groovy/GlassFishServerTest.groovy
#	dd-java-agent/instrumentation/google-http-client/src/test/groovy/AbstractGoogleHttpClientTest.groovy
#	dd-java-agent/instrumentation/jetty-8/src/test/groovy/JettyHandlerTest.groovy
#	dd-java-agent/instrumentation/play-2.4/src/test/groovy/server/PlayServerTest.groovy
#	dd-java-agent/instrumentation/play-2.6/src/test/groovy/server/PlayServerTest.groovy
#	dd-java-agent/instrumentation/ratpack-1.4/src/test/groovy/server/RatpackHttpServerTest.groovy
#	dd-java-agent/instrumentation/servlet/request-2/src/test/groovy/JettyServlet2Test.groovy
#	dd-java-agent/instrumentation/servlet/request-3/src/test/groovy/AbstractServlet3Test.groovy
#	dd-java-agent/instrumentation/servlet/request-3/src/test/groovy/JettyServlet3Test.groovy
#	dd-java-agent/instrumentation/servlet/request-3/src/test/groovy/TomcatServlet3Test.groovy
#	dd-java-agent/instrumentation/spring-webmvc-3.1/src/test/groovy/test/SpringBootBasedTest.groovy
#	dd-java-agent/src/test/groovy/datadog/trace/agent/JMXFetchTest.groovy
#	dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/HttpServerTest.groovy
#	dd-trace-api/src/main/java/datadog/trace/api/Config.java
#	dd-trace-ot/src/main/java/datadog/opentracing/DDSpan.java
#	dd-trace-ot/src/main/java/datadog/opentracing/decorators/DDDecoratorsFactory.java
#	dd-trace-ot/src/main/java/datadog/trace/common/writer/DDAgentWriter.java
#	dd-trace-ot/src/test/groovy/datadog/opentracing/decorators/SpanDecoratorTest.groovy
#	dd-trace-ot/src/test/groovy/datadog/trace/api/writer/DDAgentWriterTest.groovy
2020-01-02 08:28:06 -08:00
Tyler Benson ab33ed4a02 Begin 0.41.0 2019-12-23 10:04:47 -08:00
Tyler Benson b8210ceea5 Version 0.40.0 2019-12-23 09:33:30 -08:00
Pawel Chojnacki 65c701dd51
Merge pull request #1128 from DataDog/pawel/add_rmi_support
Add RMI support
2019-12-23 14:38:46 +01:00
Pawel Chojnacki f71ba14016 [rmi] use simple thread local for propagating context
+ add more documentation
2019-12-23 13:25:14 +01:00
Tyler Benson 9020b74128
Merge pull request #1147 from DataDog/tyler/kafka-async
Add async propagation flags for kafka consumer.
2019-12-20 14:55:36 -08:00
Laplie Anderson 00f9e310be
Merge pull request #1154 from DataDog/landerson/jax-rs-client-lazy-builder
JAX-RS ClientBuilder thread safety
2019-12-20 16:15:37 -05:00
Laplie Anderson 97b947919f Add a comment 2019-12-20 15:27:32 -05:00
Laplie Anderson 7338bbdd06 Register on JAX-RS client instead of builder 2019-12-20 13:15:04 -05:00
Laplie Anderson 7920a25b7e
Merge pull request #1152 from DataDog/landerson/decorator-flag
Disable decorators via config
2019-12-20 11:09:21 -05:00
Pawel Chojnacki 3f21f6419d [rmi] Split context propagation to server and client instrumentation
+ Separate extra code from advices
 + cleanup helper definitions
2019-12-20 16:16:53 +01:00
Pawel Chojnacki c3308042d3 [rmi] use ObjectEndpoint#toString() to avoid need for reflection to be able to compare object identifiers. 2019-12-20 12:10:35 +01:00
Tyler Benson ad22bd9cfc
Merge pull request #1150 from DataDog/tyler/fix-disruptor-shutdown
Allow flush to return if executor already shut down
2019-12-19 16:12:02 -08:00
Laplie Anderson 712a5c1483 Disable decorators via config 2019-12-19 13:02:59 -05:00
Tyler Benson 32db01200c
Merge pull request #1131 from fujigon/feature/debugging
apply comma split logic to servlet request extract adapter
2019-12-19 09:06:12 -08:00
Pawel Chojnacki bb05700806 [rmi] Improve connection overhead and add additional metadata
- Cache response per connection to ensure as little communication overhead as possible is needed
 - change context payload serialization to use plain hashmap
   + add more logging
 - only set parent context on root entry point
   + use decorator to create spans
 - Use Instrumentation context to avoid reflection
 - separate integration parts into packages
2019-12-19 17:21:16 +01:00
Pawel Chojnacki 832605a01a [rmi] Add distributed context propagation
The flow for context propagation is as follows.

 * <p>We inject into StreamRemoteCall constructor used for invoking remote tasks and performs a
 * backwards compatible check to ensure if the other side is prepared to receive context propagation
 * messages then if successful sends a context propagation message
 *
 * <p>Context propagation consist of a Serialized HashMap with all data set by usual context
 * injection, which includes things like sampling priority, trace and parent id
 *
 * <p>As well as optional baggage items
 *
 * <p>On the other side of the communication a special Dispatcher is created when a message with
 * DD_CONTEXT_CALL_ID is received.
 *
 * <p>If the server is not instrumented first call will gracefully fail just like any other unknown
 * call. With small caveat that this first call needs to *not* have any parameters, since those will
 * not be read from connection and instead will be interpreted as another remote instruction, but
 * that instruction will essentially be garbage data and will cause the parsing loop to throw exception
 * and shutdown the connection which we do not want
2019-12-19 17:21:07 +01:00
Pawel Chojnacki 0ee80a0b95 [rmi] Instrumentation for RMI 1.2 and later
includes instrumentation of client and server endpoints
currently missing passing of execution context from client to server
2019-12-19 17:20:50 +01:00
Tyler Benson fb8f7af342
Merge pull request #1149 from DataDog/tyler/jdk-muzzle
Add option for muzzle validation on the specific JDK version
2019-12-19 08:14:54 -08:00
kfujita b707a3aab9 move multi-value aware logic to Extractor. 2019-12-19 13:33:08 +09:00
kfujita 0f3125498c add test case 2019-12-19 13:33:03 +09:00
kfujita a5e693bb92 assert fix same as JettyServlet3Test 2019-12-19 13:32:09 +09:00
Laplie Anderson dc0cbeb95d apply comma split logic to servlet request extract adapter 2019-12-19 13:32:09 +09:00
Tyler Benson 619fdeda37
Merge pull request #1148 from DataDog/tyler/span-error
Capture error message even if no exception object provided.
2019-12-18 15:33:56 -08:00
Tyler Benson 25d0d98dff Allow flush to return if executor already shut down
Otherwise it could block shutdown if executor is stopped before disruptor.
2019-12-18 14:23:46 -08:00
Tyler Benson 31b77cbd7b Capture error message even if no exception object provided.
This is currently only used by the GoogleHttpClient instrumentation, but may be used by customers too.
2019-12-18 13:49:24 -08:00
Tyler Benson ded28674d3 Add option for muzzle validation on the specific JDK version
This is still useful to validate various aspects of the integrations even if it doesn't need to check against maven.
2019-12-18 13:40:19 -08:00
Tyler Benson 7095ea3426 Add async propagation flags for kafka consumer. 2019-12-18 10:40:54 -08:00
Trask Stalnaker 71cd1a69b3
Remove OpenTracing interoperability (#44)
* Remove dependency on OpenTracing constants

* Remove OpenTracing tracer resolver

* Remove dep on OpenTracing Tracer and GlobalTracer

* Remove dep on OpenTracing ScopeManager/Context

* Remove dep on OpenTracing References

* Remove dep on OpenTracing Format

* Remove dep on OpenTracing Scope

* Remove dep on OpenTracing Span

* Remove OpenTracing compatibility tests

* Remove dep on OpenTracing SpanContext

* Remove dep on OpenTracing propagation classes

* Remove dep on OpenTracing log field name constants

* Remove dependency on OpenTracing

* Some last OpenTracing related renaming

* Remove unused code

* Remove code that's not doing anything

* A bit more cleanup
2019-12-18 10:17:50 -08:00
Tyler Benson b3f15ca133
Merge pull request #1146 from DataDog/tyler/boostrap-log-exception
Add better exception handling in Agent initialization
2019-12-17 22:03:42 -08:00
Tyler Benson 96edbe8b8a Add better exception handling in Agent initialization
An invalid statsd hostname causes an exception for jmxfetch.  This should be an error, but not prevent the app from starting.

Also improved log variable name consistency.
2019-12-17 14:15:42 -08:00
Trask Stalnaker 1fced9d473
Remove thread name and thread id tags (#42) 2019-12-17 14:04:23 -08:00
Trask Stalnaker e94573df4f
Remove decorators infrastructure (#39) 2019-12-17 10:58:31 -08:00
Tyler Benson fc59355a69
Merge pull request #1141 from DataDog/tyler/tag-query
Fix tagging query string for additional servers
2019-12-17 10:11:40 -08:00
Tyler Benson 7a826d2f27
Merge pull request #41 from open-telemetry/otel-dd-merged
Merge changes from dd-trace-java 0.39.0
2019-12-17 10:04:23 -08:00
Tyler Benson 99992df998 Fix tagging query string for additional servers
Add test to common test suite and adapt each test.
2019-12-17 09:33:27 -08:00
Tyler Benson 7b93c3809c Pin kafka latestDepTest version to 2.3.x
2.4.0 introduces test failures:
```
Caused by: java.lang.NoClassDefFoundError: org.I0Itec.zkclient.ZkClient
```
when executing `compileLatestDepTestGroovy`.
2019-12-16 09:22:10 -08:00
Tyler Benson 92069fd498 Merge changes from dd-trace-java 0.39.0
https://github.com/DataDog/dd-trace-java/releases/tag/v0.39.0

# Conflicts:
#	dd-java-agent/instrumentation/akka-http-10.0/src/lagomTest/groovy/LagomTest.groovy
#	dd-java-agent/instrumentation/akka-http-10.0/src/test/groovy/AkkaHttpClientInstrumentationTest.groovy
#	dd-java-agent/instrumentation/akka-http-10.0/src/test/groovy/AkkaHttpServerInstrumentationTest.groovy
#	dd-java-agent/instrumentation/datastax-cassandra-3/src/test/groovy/CassandraClientTest.groovy
#	dd-java-agent/instrumentation/dropwizard/dropwizard-views/src/test/groovy/ViewRenderTest.groovy
#	dd-java-agent/instrumentation/dropwizard/src/test/groovy/DropwizardTest.groovy
#	dd-java-agent/instrumentation/elasticsearch/transport-5.3/src/test/groovy/springdata/Elasticsearch53SpringRepositoryTest.groovy
#	dd-java-agent/instrumentation/glassfish/src/test/groovy/GlassFishServerTest.groovy
#	dd-java-agent/instrumentation/google-http-client/src/test/groovy/AbstractGoogleHttpClientTest.groovy
#	dd-java-agent/instrumentation/grpc-1.5/src/test/groovy/GrpcStreamingTest.groovy
#	dd-java-agent/instrumentation/grpc-1.5/src/test/groovy/GrpcTest.groovy
#	dd-java-agent/instrumentation/hibernate/core-3.3/src/test/groovy/CriteriaTest.groovy
#	dd-java-agent/instrumentation/hibernate/core-3.3/src/test/groovy/QueryTest.groovy
#	dd-java-agent/instrumentation/hibernate/core-3.3/src/test/groovy/SessionTest.groovy
#	dd-java-agent/instrumentation/hibernate/core-4.0/src/test/groovy/CriteriaTest.groovy
#	dd-java-agent/instrumentation/hibernate/core-4.0/src/test/groovy/QueryTest.groovy
#	dd-java-agent/instrumentation/hibernate/core-4.0/src/test/groovy/SessionTest.groovy
#	dd-java-agent/instrumentation/hibernate/core-4.3/src/test/groovy/ProcedureCallTest.groovy
#	dd-java-agent/instrumentation/hibernate/core-4.3/src/test/groovy/SpringJpaTest.groovy
#	dd-java-agent/instrumentation/hystrix-1.4/src/test/groovy/HystrixObservableChainTest.groovy
#	dd-java-agent/instrumentation/hystrix-1.4/src/test/groovy/HystrixObservableTest.groovy
#	dd-java-agent/instrumentation/hystrix-1.4/src/test/groovy/HystrixTest.groovy
#	dd-java-agent/instrumentation/java-concurrent/src/slickTest/groovy/SlickTest.groovy
#	dd-java-agent/instrumentation/jax-rs-annotations-1/src/test/groovy/JerseyTest.groovy
#	dd-java-agent/instrumentation/jdbc/src/test/groovy/JDBCInstrumentationTest.groovy
#	dd-java-agent/instrumentation/jedis-1.4/src/test/groovy/JedisClientTest.groovy
#	dd-java-agent/instrumentation/jetty-8/src/test/groovy/JettyHandlerTest.groovy
#	dd-java-agent/instrumentation/jms/src/latestDepTest/groovy/JMS2Test.groovy
#	dd-java-agent/instrumentation/jms/src/test/groovy/JMS1Test.groovy
#	dd-java-agent/instrumentation/jsp-2.3/src/test/groovy/JSPInstrumentationBasicTests.groovy
#	dd-java-agent/instrumentation/jsp-2.3/src/test/groovy/JSPInstrumentationForwardTests.groovy
#	dd-java-agent/instrumentation/kafka-clients-0.11/src/test/groovy/KafkaClientTest.groovy
#	dd-java-agent/instrumentation/kafka-streams-0.11/src/test/groovy/KafkaStreamsTest.groovy
#	dd-java-agent/instrumentation/lettuce-5/src/test/groovy/LettuceAsyncClientTest.groovy
#	dd-java-agent/instrumentation/lettuce-5/src/test/groovy/LettuceReactiveClientTest.groovy
#	dd-java-agent/instrumentation/lettuce-5/src/test/groovy/LettuceSyncClientTest.groovy
#	dd-java-agent/instrumentation/netty-4.1/src/test/groovy/Netty41ClientTest.groovy
#	dd-java-agent/instrumentation/play-2.4/src/test/groovy/server/PlayServerTest.groovy
#	dd-java-agent/instrumentation/play-2.6/src/test/groovy/server/PlayServerTest.groovy
#	dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/test/groovy/RabbitMQTest.groovy
#	dd-java-agent/instrumentation/ratpack-1.4/src/test/groovy/server/RatpackHttpServerTest.groovy
#	dd-java-agent/instrumentation/servlet/request-2/src/test/groovy/JettyServlet2Test.groovy
#	dd-java-agent/instrumentation/servlet/request-3/src/test/groovy/AbstractServlet3Test.groovy
#	dd-java-agent/instrumentation/servlet/request-3/src/test/groovy/JettyServlet3Test.groovy
#	dd-java-agent/instrumentation/servlet/request-3/src/test/groovy/TomcatServlet3Test.groovy
#	dd-java-agent/instrumentation/sparkjava-2.3/src/test/groovy/SparkJavaBasedTest.groovy
#	dd-java-agent/instrumentation/spring-data-1.8/src/test/groovy/SpringJpaTest.groovy
#	dd-java-agent/instrumentation/spring-webflux-5/src/test/groovy/SpringWebfluxTest.groovy
#	dd-java-agent/instrumentation/spring-webflux-5/src/test/groovy/dd/trace/instrumentation/springwebflux/client/SpringWebfluxHttpClientTest.groovy
#	dd-java-agent/instrumentation/spring-webmvc-3.1/src/test/groovy/test/SpringBootBasedTest.groovy
#	dd-java-agent/instrumentation/spymemcached-2.12/src/test/groovy/datadog/trace/instrumentation/spymemcached/SpymemcachedTest.groovy
#	dd-java-agent/instrumentation/trace-annotation/src/test/groovy/ConfiguredTraceAnnotationsTest.groovy
#	dd-java-agent/instrumentation/trace-annotation/src/test/groovy/TraceAnnotationsTest.groovy
#	dd-java-agent/instrumentation/trace-annotation/src/test/groovy/TraceConfigTest.groovy
#	dd-java-agent/instrumentation/twilio/src/test/groovy/test/TwilioClientTest.groovy
#	dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/HttpClientTest.groovy
#	dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/HttpServerTest.groovy
#	dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/utils/TraceUtils.groovy
#	dd-trace-ot/src/main/java/datadog/opentracing/ContainerInfo.java
#	dd-trace-ot/src/main/java/datadog/opentracing/DDTracer.java
#	dd-trace-ot/src/main/java/datadog/trace/common/writer/DDAgentWriter.java
#	dd-trace-ot/src/test/groovy/datadog/opentracing/decorators/SpanDecoratorTest.groovy
#	dd-trace-ot/src/test/groovy/datadog/trace/api/writer/DDAgentWriterTest.groovy
2019-12-16 09:22:10 -08:00
Tyler Benson f04bc03a90
Merge pull request #1142 from DataDog/tyler/pin-kafka-latest-version
Pin kafka latestDepTest version to 2.3.x
2019-12-16 09:17:10 -08:00
Tyler Benson a2b86e6b96 Pin kafka latestDepTest version to 2.3.x
2.4.0 introduces test failures:
```
Caused by: java.lang.NoClassDefFoundError: org.I0Itec.zkclient.ZkClient
```
when executing `compileLatestDepTestGroovy`.
2019-12-16 08:51:30 -08:00
Laplie Anderson aa838ceb28 Begin 0.40.0 2019-12-13 16:42:58 -05:00
Laplie Anderson aac1826ddb Version 0.39.0 2019-12-13 15:30:33 -05:00
Trask Stalnaker e2f9bfb4c5
Remove span type decorators (#38) 2019-12-12 16:20:27 -08:00
Tyler Benson 839de614a5
Merge pull request #1136 from DataDog/tyler/tag-query
Capture full servlet URL in decorator
2019-12-12 15:16:38 -08:00
Laplie Anderson aaa6614116
Merge pull request #1138 from DataDog/landerson/play-2.8-muzzle
End Play 2.6 muzzle spec at 2.8 because its breaking
2019-12-12 18:11:01 -05:00
Laplie Anderson 86c3e80121 End Play 2.6 muzzle at 2.8 because its breaking 2019-12-12 17:47:21 -05:00
Tyler Benson b00cdee54a Capture full servlet URL in decorator
This is needed in order to tag the query string (when configured).

Full test suite will follow in future PR.
2019-12-12 13:47:40 -08:00
Douglas Q Hawkins 7b2c2e8c78
Merge pull request #1125 from DataDog/dougqh/service-decorator-ordering
Ordering inconistency with DDSpanBuilder.withTag
2019-12-12 10:33:07 -05:00
Douglas Q Hawkins e9e3b375b9
Merge pull request #1132 from DataDog/dougqh/bounded-sender-queue
Restricting sender queue size
2019-12-12 10:30:59 -05:00