Commit Graph

1505 Commits

Author SHA1 Message Date
Tyler Benson 6100443443 Attempt to properly parse out instance name from JDBC url
Unfortunately implementations are INCREDIBLY inconsistent on the matter.  Oracle implementation is still pending since it’s really complicated.
2019-06-05 18:01:33 -07:00
Luca Abbati b6572bfd55
Reset test tracer in TraceAnnotationsTest to pick new configs 2019-06-05 18:52:25 +02:00
Luca Abbati 057ca7b66e
Refresh the tracer with changed config properties now that we are using instances 2019-06-05 15:38:00 +02:00
Luca Abbati ae03abe63c
Adapt tests to the new Config approach instance vs static 2019-06-05 12:17:09 +02:00
Luca Abbati 8debe771d4
Fix tests after changing config from static to instance access 2019-06-05 10:56:20 +02:00
Luca Abbati 901efee50e
Remove static usage of low level config methods from outside the config class 2019-06-04 15:13:40 +02:00
Tyler Benson 8016e22bc4 Review changes 2019-05-31 09:07:22 -07:00
Tyler Benson 9cdf049ca7 Extract ConfigUtils 2019-05-30 09:09:29 -07:00
Tyler Benson a7c941c2ea More fixes.
Notably added a transformer to make config easier to test with by making INSTANCE public static volatile.
2019-05-29 22:24:19 -07:00
Tyler Benson fc9f1d120c Misc fixes. 2019-05-29 13:54:35 -07:00
Tyler Benson 71101ac8d0 Add http.query.string tag when enabled
Disabled by default.

Enable for http servers with:
* System Property: `dd.http.server.tag.query-string=true`
* Environment Variable: `DD_HTTP_SERVER_TAG_QUERY_STRING=true`

Enable for http clients with:
* System Property: `dd.http.client.tag.query-string=true`
* Environment Variable: `DD_HTTP_CLIENT_TAG_QUERY_STRING=true`
2019-05-29 13:54:35 -07:00
Tyler Benson e260b1d044 Make all http client tests extend HttpClientTest
Add flexibility to handle inconsistencies between client integrations.
2019-05-29 13:54:35 -07:00
Tyler Benson 8c860d63a4 Revert Pull Request #854 and #855
These are breaking changes that need more vetting.
2019-05-29 12:18:31 -07:00
Luca Abbati eb032d1c8e
Adding muzzle tests for glassfish 3 and 5 2019-05-29 17:53:42 +02:00
Luca Abbati 19c0b21332
Remove useless tests from Glassfish 4 instrumentation 2019-05-29 17:24:51 +02:00
Luca Abbati 37b734dd50
Some more attempts to UT glassfish classloader 2019-05-28 19:39:11 +02:00
Luca Abbati f62e1dedeb
Add unit tests for glassfish 4.1 instrumentation 2019-05-28 15:06:43 +02:00
Luca Abbati 470a20dbce
Fix code formatting 2019-05-28 13:56:37 +02:00
Luca Abbati 5292b598d8
Remove log from GlassfishAdvice as log is not available 2019-05-27 16:20:46 +02:00
Luca Abbati 9d2523a58a
Reformat code 2019-05-27 15:50:47 +02:00
Luca Abbati 13cf53827d
Merge branch 'master' of github.com:DataDog/dd-trace-java into labbati/jdbc-error-glasshfish 2019-05-27 15:18:18 +02:00
Luca Abbati 0c52ba58c4
Move glassfish 4 compatibility layer to instrumentation module 2019-05-27 15:17:04 +02:00
Tyler Benson 0ea2d74744
Merge pull request #857 from DataDog/tyler/misc
Fix log message and add ignores
2019-05-24 14:23:01 -07:00
Nikolay Martynov 70fa97f8c2 Move code to make java7 happy 2019-05-24 16:55:39 -04:00
Nikolay Martynov ef94e2fb79 Add note about Kafka consumer iterator thread safety 2019-05-24 16:37:27 -04:00
Nikolay Martynov a3a325868c Add some rudimetrary tests for CompletableFuture 2019-05-24 16:36:07 -04:00
Nikolay Martynov 0b85f048d1 Handle Scope in Kafka producer properly
Holding onto scope in `Callback` is bad because that code may run on
different thread.
2019-05-24 16:27:28 -04:00
Tyler Benson 21c22d6985 Fix log message and add ignores
Also add CODEOWNERS
2019-05-24 11:44:10 -07:00
Luca Abbati a3a98ceac8
Merge pull request #856 from DataDog/labbati/set-spring-controller-async
Make spring controller spans to handle async
2019-05-24 18:47:35 +02:00
Luca Abbati 25e06b4965
Make spring controller spans to handle async 2019-05-24 17:42:06 +02:00
Tyler Benson 4f3c527074
Merge pull request #838 from DataDog/tyler/jmx-fetch
Enable JMXFetch by default and add configs for more standard custom metrics
2019-05-24 08:41:14 -07:00
Nikolay Martynov 82f1a485d5
Merge pull request #855 from DataDog/mar-kolya/rabbitmq-client-service-name
Use default service name for RabbitMQ consumer
2019-05-24 10:51:28 -04:00
Nikolay Martynov a7271ed2b2 Use default service name for RabbitMQ consumer
So spans parented by consumer span had reasonable service name
2019-05-24 09:06:22 -04:00
Luca Abbati fcbe7c9869
Fix code format 2019-05-24 12:13:54 +02:00
Tyler Benson 91cdef1a35 Reduce logging to avoid risk of deadlocks.
dd-jmx-collector
Stack Trace is:
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@10.0.1/Native Method)
- parking to wait for <0x00000007a9ce5448> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park(java.base@10.0.1/LockSupport.java:194)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(java.base@10.0.1/AbstractQueuedSynchronizer.java:883)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(java.base@10.0.1/AbstractQueuedSynchronizer.java:915)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@10.0.1/AbstractQueuedSynchronizer.java:1238)
at java.util.concurrent.locks.ReentrantLock.lock(java.base@10.0.1/ReentrantLock.java:267)
at org.gradle.internal.remote.internal.hub.MessageHub$ChannelDispatch.dispatch(MessageHub.java:361)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy11.sendOutputEvent(Unknown Source)
at org.gradle.process.internal.worker.child.WorkerLogEventListener.onOutput(WorkerLogEventListener.java:36)
at jdk.internal.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@10.0.1/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(java.base@10.0.1/Method.java:564)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:230)
at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:149)
at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140)
at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy10.onOutput(Unknown Source)
at org.gradle.internal.logging.sink.OutputEventTransformer.onOutput(OutputEventTransformer.java:104)
at org.gradle.internal.logging.sink.OutputEventRenderer.onOutput(OutputEventRenderer.java:420)
- locked <0x00000007aa223fc0> (a java.lang.Object)
at org.gradle.internal.logging.sink.OutputEventListenerManager$1.onOutput(OutputEventListenerManager.java:36)
at org.gradle.internal.logging.services.TextStreamOutputEventListener.onTextEvent(TextStreamOutputEventListener.java:57)
at org.gradle.internal.logging.services.TextStreamOutputEventListener.onOutput(TextStreamOutputEventListener.java:41)
at org.gradle.internal.logging.source.PrintStreamLoggingSystem$OutputEventDestination.onOutput(PrintStreamLoggingSystem.java:167)
at org.gradle.internal.logging.source.PrintStreamLoggingSystem$1.text(PrintStreamLoggingSystem.java:44)
at org.gradle.internal.io.LineBufferingOutputStream.flush(LineBufferingOutputStream.java:95)
at org.gradle.internal.io.LineBufferingOutputStream.write(LineBufferingOutputStream.java:80)
at java.io.OutputStream.write(java.base@10.0.1/OutputStream.java:113)
at java.io.PrintStream.write(java.base@10.0.1/PrintStream.java:559)
- locked <0x00000007afd031a0> (a java.io.PrintStream)
at sun.nio.cs.StreamEncoder.writeBytes(java.base@10.0.1/StreamEncoder.java:233)
at sun.nio.cs.StreamEncoder.implFlushBuffer(java.base@10.0.1/StreamEncoder.java:312)
at sun.nio.cs.StreamEncoder.flushBuffer(java.base@10.0.1/StreamEncoder.java:104)
- locked <0x00000007afd03ac0> (a java.io.OutputStreamWriter)
at java.io.OutputStreamWriter.flushBuffer(java.base@10.0.1/OutputStreamWriter.java:184)
at java.io.PrintStream.newLine(java.base@10.0.1/PrintStream.java:625)
- locked <0x00000007afd031a0> (a java.io.PrintStream)
at java.io.PrintStream.println(java.base@10.0.1/PrintStream.java:883)
- locked <0x00000007afd031a0> (a java.io.PrintStream)
at org.gradle.internal.io.LinePerThreadBufferingOutputStream.println(LinePerThreadBufferingOutputStream.java:203)
at datadog.slf4j.impl.SimpleLogger.write(SimpleLogger.java:318)
at datadog.slf4j.impl.SimpleLogger.log(SimpleLogger.java:295)
at datadog.slf4j.impl.SimpleLogger.info(SimpleLogger.java:480)
at org.datadog.jmxfetch.reporter.ConsoleReporter.doSendServiceCheck(ConsoleReporter.java:52)
at org.datadog.jmxfetch.reporter.Reporter.sendServiceCheck(Reporter.java:166)
at org.datadog.jmxfetch.App.sendServiceCheck(App.java:767)
at org.datadog.jmxfetch.App.processCollectionStatus(App.java:1161)
at org.datadog.jmxfetch.App.doIteration(App.java:491)
at org.datadog.jmxfetch.App.start(App.java:424)
at org.datadog.jmxfetch.App.run(App.java:219)
at datadog.trace.agent.jmxfetch.JMXFetch$1.run(JMXFetch.java:99)
at java.lang.Thread.run(java.base@10.0.1/Thread.java:844)

main
Stack Trace is:
java.lang.Thread.State: BLOCKED (on object monitor)
at org.gradle.internal.logging.sink.OutputEventRenderer.onOutput(OutputEventRenderer.java:420)
- waiting to lock <0x00000007aa223fc0> (a java.lang.Object)
at org.gradle.internal.logging.sink.OutputEventListenerManager$1.onOutput(OutputEventListenerManager.java:36)
at org.gradle.internal.logging.services.TextStreamOutputEventListener.onTextEvent(TextStreamOutputEventListener.java:57)
at org.gradle.internal.logging.services.TextStreamOutputEventListener.onOutput(TextStreamOutputEventListener.java:41)
at org.gradle.internal.logging.source.PrintStreamLoggingSystem$OutputEventDestination.onOutput(PrintStreamLoggingSystem.java:167)
at org.gradle.internal.logging.source.PrintStreamLoggingSystem$1.text(PrintStreamLoggingSystem.java:44)
at org.gradle.internal.io.LineBufferingOutputStream.flush(LineBufferingOutputStream.java:95)
at org.gradle.internal.io.LineBufferingOutputStream.write(LineBufferingOutputStream.java:80)
at java.io.OutputStream.write(java.base@10.0.1/OutputStream.java:113)
at java.io.PrintStream.write(java.base@10.0.1/PrintStream.java:559)
- locked <0x00000007a9c6b060> (a java.io.PrintStream)
at sun.nio.cs.StreamEncoder.writeBytes(java.base@10.0.1/StreamEncoder.java:233)
at sun.nio.cs.StreamEncoder.implFlushBuffer(java.base@10.0.1/StreamEncoder.java:312)
at sun.nio.cs.StreamEncoder.flushBuffer(java.base@10.0.1/StreamEncoder.java:104)
- locked <0x00000007a9c6b990> (a java.io.OutputStreamWriter)
at java.io.OutputStreamWriter.flushBuffer(java.base@10.0.1/OutputStreamWriter.java:184)
at java.io.PrintStream.newLine(java.base@10.0.1/PrintStream.java:625)
- locked <0x00000007a9c6b060> (a java.io.PrintStream)
at java.io.PrintStream.println(java.base@10.0.1/PrintStream.java:883)
- locked <0x00000007a9c6b060> (a java.io.PrintStream)
at org.gradle.internal.io.LinePerThreadBufferingOutputStream.println(LinePerThreadBufferingOutputStream.java:203)
at datadog.slf4j.impl.SimpleLogger.write(SimpleLogger.java:318)
at datadog.slf4j.impl.SimpleLogger.log(SimpleLogger.java:295)
at datadog.slf4j.impl.SimpleLogger.formatAndLog(SimpleLogger.java:355)
at datadog.slf4j.impl.SimpleLogger.debug(SimpleLogger.java:446)
at datadog.trace.agent.tooling.context.FieldBackedProvider$1$1$1.visitMethodInsn(FieldBackedProvider.java:202)
at net.bytebuddy.jar.asm.MethodVisitor.visitMethodInsn(MethodVisitor.java:427)
at net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor.onVisitMethodInsn(ExceptionTableSensitiveMethodVisitor.java:180)
at net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor.visitMethodInsn(ExceptionTableSensitiveMethodVisitor.java:167)
at net.bytebuddy.jar.asm.MethodVisitor.visitMethodInsn(MethodVisitor.java:427)
at net.bytebuddy.utility.visitor.StackAwareMethodVisitor.visitMethodInsn(StackAwareMethodVisitor.java:302)
at net.bytebuddy.jar.asm.MethodVisitor.visitMethodInsn(MethodVisitor.java:427)
at net.bytebuddy.jar.asm.MethodVisitor.visitMethodInsn(MethodVisitor.java:427)
at net.bytebuddy.jar.asm.ClassReader.readCode(ClassReader.java:2214)
at net.bytebuddy.jar.asm.ClassReader.readMethod(ClassReader.java:1283)
at net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:688)
at net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:400)
at net.bytebuddy.asm.Advice$Dispatcher$Inlining$Resolved$AdviceMethodInliner.apply(Advice.java:7379)
at net.bytebuddy.asm.Advice$AdviceVisitor.onAfterExceptionTable(Advice.java:9427)
at net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor.considerEndOfExceptionTable(ExceptionTableSensitiveMethodVisitor.java:49)
at net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor.visitLabel(ExceptionTableSensitiveMethodVisitor.java:62)
at net.bytebuddy.jar.asm.Label.accept(Label.java:357)
at net.bytebuddy.jar.asm.ClassReader.readCode(ClassReader.java:1823)
at net.bytebuddy.jar.asm.ClassReader.readMethod(ClassReader.java:1283)
at net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:688)
at net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:400)
at net.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForInlining.create(TypeWriter.java:3393)
at net.bytebuddy.dynamic.scaffold.TypeWriter$Default.make(TypeWriter.java:1930)
at net.bytebuddy.dynamic.scaffold.inline.RedefinitionDynamicTypeBuilder.make(RedefinitionDynamicTypeBuilder.java:217)
at net.bytebuddy.agent.builder.AgentBuilder$Default$Transformation$Simple$Resolution.apply(AgentBuilder.java:10132)
at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.doTransform(AgentBuilder.java:10551)
at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:10514)
at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.access$1500(AgentBuilder.java:10280)
at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$Java9CapableVmDispatcher.run(AgentBuilder.java:10964)
at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$Java9CapableVmDispatcher.run(AgentBuilder.java:10902)
at java.security.AccessController.doPrivileged(java.base@10.0.1/Native Method)
at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:10470)
at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$ByteBuddy$ModuleSupport.transform(Unknown Source)
at sun.instrument.TransformerManager.transform(java.instrument@10.0.1/TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(java.instrument@10.0.1/InstrumentationImpl.java:560)
at java.lang.ClassLoader.defineClass1(java.base@10.0.1/Native Method)
at java.lang.ClassLoader.defineClass(java.base@10.0.1/ClassLoader.java:1009)
at java.security.SecureClassLoader.defineClass(java.base@10.0.1/SecureClassLoader.java:174)
at java.net.URLClassLoader.defineClass(java.base@10.0.1/URLClassLoader.java:545)
at java.net.URLClassLoader.access$100(java.base@10.0.1/URLClassLoader.java:83)
at java.net.URLClassLoader$1.run(java.base@10.0.1/URLClassLoader.java:453)
at java.net.URLClassLoader$1.run(java.base@10.0.1/URLClassLoader.java:447)
at java.security.AccessController.doPrivileged(java.base@10.0.1/Native Method)
at java.net.URLClassLoader.findClass(java.base@10.0.1/URLClassLoader.java:446)
at java.lang.ClassLoader.loadClass(java.base@10.0.1/ClassLoader.java:566)
- locked <0x00000007afb4bc50> (a java.lang.Object)
at java.lang.ClassLoader.loadClass(java.base@10.0.1/ClassLoader.java:499)
at org.gradle.internal.remote.internal.hub.MessageHub.addHandler(MessageHub.java:131)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection.addIncoming(MessageHubBackedObjectConnection.java:98)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.startReceivingTests(TestWorker.java:104)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:68)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:46)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:93)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:36)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:125)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:68)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:62)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:67)
2019-05-23 17:59:54 -07:00
Nikolay Martynov 80a5cc6025 Set kafka client service name to application default service name.
So that spans inheriting from that client span have application
service name rather than 'kafka'
2019-05-23 20:21:03 -04:00
Tyler Benson fd43210e07 Add task timeout for tests. 2019-05-23 17:13:40 -07:00
Tyler Benson 4d01f52b67 Change JMXFetch config keys
`agent.conf.d` -> `jmxfetch.config.dir`
`jmxfetch.configs` -> `jmxfetch.config`

Enabling bundled JMXFetch configs:
`dd.integration.<integration>.enabled=true` -> `dd.jmxfetch.<integration>.enabled=true`
2019-05-23 15:00:46 -07:00
Tyler Benson 5f8e186dcb Fix task inputs/outputs. 2019-05-22 16:00:20 -07:00
Tyler Benson b505c60543 Use jmx AppConfig Builder instead of factory method
Expose new options for configuring JMXFetch with standard datadog-agent config files with `jvm_direct: true` set as an instance attribute (this will be ignored by the datadog-agent).

For Example:
* `dd.agent.conf.d=/opt/datadog-agent/etc/conf.d`
* `dd.jmxfetch.configs=activemq.d/conf.yaml,jmx.d/conf.yaml`
will load jmx configs in those two files that have `jvm_direct: true` in their `instance` setup.

Environment variables can also be used: `DD_AGENT_CONF_D` and `DD_JMXFETCH_CONFIGS`

Depends on https://github.com/DataDog/jmxfetch/releases/tag/0.29.0 being released.
2019-05-21 17:13:56 -07:00
Tyler Benson 204b7cdd4c Update Integrations Core to 6.11.2 2019-05-21 08:33:09 -07:00
Luca Abbati 19d9880d9d
Add tests for Utils.getStackTraceAsString() 2019-05-20 16:44:14 +02:00
Luca Abbati 5cf6fc969d
Improve docblocks of glassfish compatibility layer 2019-05-20 16:44:14 +02:00
Luca Abbati 5f68507eb4
In galssfish, prevent blacklisting of specific classes and dump stack trace in debug mode 2019-05-20 16:44:14 +02:00
Nikolay Martynov c5dbd7d0d7 Fix ApacheHttpAsync race condition 2019-05-17 13:49:46 -04:00
Nikolay Martynov 47e6216e6b
Merge pull request #842 from DataDog/mar-kolya/limit-couchbase-latest-dep-version
Do not try to build against couchbase 2.7.5 since it didn't sync up w…
2019-05-17 13:14:34 -04:00
Nikolay Martynov 48f951cee7
Merge pull request #841 from DataDog/mar-kolya/ignore-flaky-test
Wait for span to finish in apache-http-aync test
2019-05-17 13:13:38 -04:00
Tyler Benson d900289ae0 Try again… 2019-05-17 10:01:37 -07:00
Nikolay Martynov e52c654fd1 Wait for span to finish instead of ignoring test 2019-05-17 12:55:34 -04:00
Tyler Benson b6ba1997ae Add constraint for muzzle too 2019-05-17 09:32:15 -07:00
Nikolay Martynov 6287e552fc
Merge pull request #836 from DataDog/mar-kolya/do-not-send-headers-to-old-kafka
Do not send headers to old kafka servers
2019-05-17 11:55:52 -04:00
Nikolay Martynov d01832a94d Do not try to build against couchbase 2.7.5 since it didn't sync up with mirrors yet 2019-05-17 11:27:35 -04:00
Nikolay Martynov c02110a2a1 Add comment explaining Kafka versions limitations check 2019-05-17 11:22:02 -04:00
Nikolay Martynov 387f094617 Ignore flaky apache-http-aync test 2019-05-17 11:19:24 -04:00
Nikolay Martynov 94907270a2
Merge pull request #837 from DataDog/mar-kolya/fix-apache-async-instrumentation-with-null-callback
Handle null callback in HttpAsyncApache instrumentation
2019-05-16 17:41:39 -04:00
Nikolay Martynov b736ca3108 Handle null callback in HttpAsyncApache instrumentation 2019-05-16 17:26:08 -04:00
Nikolay Martynov 55d7c2a6f5 Do not send headers to old kafka servers
Kafka message bundles with versions below 2 (e.d. 0.10) do not support
headers so do not inject them. Otherwise client gets really upset.

This is how similar check is being done in Kafka client itself:
05fcfde8f6/clients/src/main/java/org/apache/kafka/common/record/MemoryRecordsBuilder.java (L411-L412)
2019-05-16 15:09:58 -04:00
Tyler Benson 354d17ac7d
Merge pull request #830 from DataDog/tyler/executor-config
Add config to enable individual executors
2019-05-16 10:05:29 -07:00
Tyler Benson 3bbf9f27eb Fix resource name for Ratpack
Previous fallback would inadvertently include query parameters in the resource name.
2019-05-15 16:30:51 -07:00
Tyler Benson cc23fee614 Add config to enable individual executors
Or all executors, bypassing the allow list.

`dd.trace.executor=com.MyCustomExecutor,com.OtherExecutor`
`dd.trace.executors.all=true`

Turns out in many cases, executors that we say we’re skipping, are still being traced because they extend from an already instrumented executor.
2019-05-14 10:03:44 -07:00
Nikolay Martynov ba02250cf6 Clarify log messages when tracing is disabled 2019-05-09 16:12:35 -04:00
Nikolay Martynov 5ff04bd1e9 Allow tracing be disabled via config 2019-05-09 10:20:06 -04:00
Nikolay Martynov 2984cc506e Limit okhttp latest deps test to 3.x.x 2019-05-09 10:17:35 -04:00
Nikolay Martynov c0bb6f4a36 Fix minor typo 2019-05-09 09:44:42 -04:00
Tyler Benson 376451c031 Fix instrumentation names for apache httpasyncclient 2019-05-03 09:58:05 -07:00
Tyler Benson 745fc70b58
Merge pull request #816 from DataDog/tyler/make-field-transient
Add transient modifier to added context fields.
2019-05-03 08:34:19 -07:00
Tyler Benson 579b6dd929 Add transient modifier to added context fields. 2019-05-02 15:52:43 -07:00
Tyler Benson 4b1fcdea04 Remove latest dep test for transport-5 2019-05-02 14:44:31 -07:00
Tyler Benson 0a234872e9 Try limiting latest to 5.1.x 2019-05-02 14:04:07 -07:00
Tyler Benson 8a38b6fc1e Skip ES tests in CI. 2019-05-02 12:26:39 -07:00
Tyler Benson 82f50e22b7
Merge pull request #811 from DataDog/tyler/hystrixobservable
Add support for HystrixObservableCommand
2019-05-02 09:47:09 -07:00
Tyler Benson 793627c167 Fix tests 2019-04-30 15:55:12 -07:00
Tyler Benson c8743fce64 Remove potentially dangerous recursive call. 2019-04-30 14:53:15 -07:00
Tyler Benson ac734ac6ee More classloading issues with Glassfish
Glassfish’s WebappClassLoader caches when a resource or class load fails, so we can’t load as a resource first to see if it is available.

Also add additional logging.
2019-04-30 12:38:54 -07:00
Tyler Benson 2c5ae9f3b1 Make OSGi instrumentation more generic
This should help it work with felix.

Also reduce log noise.
2019-04-30 12:38:54 -07:00
Tyler Benson c971c434d1 Fix propagation and add onUnsubscribe handler
Ensures that span is closed when Observable is unsubscribed from.

Also added retransform error logger since retransforms might be missed if an exception is thrown, leading to odd behavior.
2019-04-30 11:52:20 -07:00
Tyler Benson f74fd347c2
Merge pull request #814 from raphw/frames-fixed
Fixes #813: Only add frames if class file version supports attribute
2019-04-30 11:13:53 -07:00
Tyler Benson 1b38fcc8b4 Apply formatting 2019-04-30 10:08:58 -07:00
Rafael Winterhalter eeaa27af83 Fixes #813: Only add frames if class file version supports attribute 2019-04-30 10:22:27 +02:00
Tyler Benson 54287fa548 Add comment and consistency. 2019-04-29 12:21:05 -07:00
Tyler Benson 6414de82d9 Add support for HystrixObservableCommand
This change is slightly breaking for existing hystrixCommand code since the resource name changes from run->execute and getFallback->fallback.  The fallback span is also now a child of the execute span.
2019-04-29 12:04:27 -07:00
Tyler Benson 25d109753d
Merge pull request #809 from DataDog/tyler/httpasyncclient
Add instrumentation for Apache HttpAsyncClient
2019-04-29 08:14:11 -07:00
Tyler Benson 68a68f1057 Ensure that http.url tag doesn’t have query params set
Make handling of it more consistent in decorator.
2019-04-26 09:48:34 -07:00
Tyler Benson 20df3aa18e Add HttpAsyncClient to Elasticsearch for verification. 2019-04-25 17:27:06 -07:00
Tyler Benson 179b9b69cb Upgrade Byte Buddy to 1.9.12
and a few other minor code changes.
2019-04-25 10:36:35 -07:00
Tyler Benson 9ad06a6791 Add instrumentation for Apache HttpAsyncClient
Extract http client tests to shared class.
2019-04-23 17:10:40 -07:00
Tyler Benson 4c79f38a4d A couple other minor changes… 2019-04-19 10:41:13 -07:00
Tyler Benson ec91a75848 Add config allowing classes to be excluded from transformation
Add the following system property or corresponding environment variable:
```
dd.trace.classes.exclude=some.packagename.*,some.classname.MyClass$NestedClass
```
2019-04-19 10:41:13 -07:00
Tyler Benson 746c423199
Merge pull request #775 from darylrobbins/twilio
Twilio SDK Instrumentation
2019-04-19 09:18:40 -07:00
Tyler Benson 2acaeb3dfb Revert minor changes. 2019-04-17 16:23:15 -07:00
Tyler Benson e74941a4d5 Merge branch 'master' into twilio 2019-04-16 17:44:36 -07:00
Tyler Benson b9207133d6 Split async and sync advice and misc cleanup. 2019-04-16 13:56:44 -07:00
Daryl Robbins 315ae67fd2 Merge branch 'twilio' of github.com:darylrobbins/dd-trace-java into twilio
* 'twilio' of github.com:darylrobbins/dd-trace-java:
  Updates to handle async calls, which have broken all tests
  Missed Gradle file
  WIP Twilio SDK Instrumentation

# Conflicts:
#	dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioClientDecorator.java
#	dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioInstrumentation.java
#	dd-java-agent/instrumentation/twilio/src/test/groovy/test/TwilioClientTest.groovy

Merge branch 'twilio' of github.com:darylrobbins/dd-trace-java into twilio
Improved unit testing

* 'twilio' of github.com:darylrobbins/dd-trace-java:
  Updates to handle async calls, which have broken all tests
  Missed Gradle file
  WIP Twilio SDK Instrumentation

# Conflicts:
#	dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioClientDecorator.java
#	dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioInstrumentation.java
#	dd-java-agent/instrumentation/twilio/src/test/groovy/test/TwilioClientTest.groovy

Fix sleep times and choose Java7-friendly test dependencies

Corrected test assertion
2019-04-16 13:56:44 -07:00
Daryl Robbins 13aa267d84 WIP Twilio SDK Instrumentation
Missed Gradle file

Updates to handle async calls, which have broken all tests
2019-04-16 13:56:44 -07:00
Daryl Robbins e3d97b0984 WIP Twilio SDK Instrumentation
Missed Gradle file

Updates to handle async calls, which have broken all tests

Fixed instrumentation and augmented tests
2019-04-16 13:46:43 -07:00
Tyler Benson 0315c976af Fixes for ratpack. 2019-04-16 13:29:26 -07:00
Tyler Benson b343fe4551 Split peer connection details different generic argument 2019-04-16 08:34:43 -07:00
Tyler Benson bf05984208 Server tags should report peer, not self hostname/port
Previously this was not obvious and incorrect.
2019-04-16 08:21:01 -07:00
Tyler Benson dc2e435de9
Merge pull request #797 from DataDog/tyler/ratpack
Update ratpack instrumentation and remove default disabled.
2019-04-16 08:14:10 -07:00
Luca Abbati f4a17ba4c5
Remove tests that relied on inner knowledge of the class. Feature still tested with cglib test. 2019-04-12 17:12:50 +02:00