Commit Graph

3397 Commits

Author SHA1 Message Date
Tyler Benson c1dad60a4c Disable zulu8 test for time being due to test incompatibility
OkHttp seems to be inadvertently loading the java log manager.
2019-11-05 14:36:25 -08:00
Tyler Benson 2d3b644c84
Merge pull request #1080 from DataDog/tyler/rename-beta-configs
Rename config key for beta/experimental instrumentation.
2019-11-05 08:44:33 -08:00
Tyler Benson da8aa5c7c1
Merge pull request #1079 from DataDog/tyler/decorator-parse-strings
Allow decorators to parse string values on tags.
2019-11-05 08:43:26 -08:00
Tyler Benson 4f853f5f0c Rename config key for beta/experimental instrumentation.
Postfix the existing config names with `-beta` for `servlet` and `jdbc`.

To avoid any risk that the config was explicitly enabled for an unrelated reason resulting in unexpected behavior when upgrading to the latest version.
2019-11-04 13:41:33 -08:00
Laplie Anderson 4ba0ca0f9d
Merge pull request #1078 from DataDog/landerson/big-integer-ids
Change TraceId/SpanId to BigInteger
2019-11-04 16:34:09 -05:00
Tyler Benson 74fd6b6c9c Allow decorators to parse string values on tags.
Since global tags can only be set as String.
2019-11-04 13:23:31 -08:00
Laplie Anderson bc2978e8d8 Use groovy literals for BigInteger 2019-11-04 16:16:03 -05:00
Laplie Anderson e7ac8e7668 Only generate ids up to 2^63 - 1 2019-11-04 15:16:55 -05:00
Laplie Anderson a3cd46708b
Merge pull request #1075 from DataDog/landerson/wsclient
Play WS Client instrumentation
2019-11-04 13:57:46 -05:00
Laplie Anderson bf4587c23d Missed a few test helper methods 2019-11-04 12:49:35 -05:00
Laplie Anderson cfc19facf5 Change String ids to BigInteger ids 2019-11-04 11:21:32 -05:00
Nikolay Martynov 466fdf2a79
Merge pull request #1077 from DataDog/mar-kolya/fix-scala-warning
Fix scala warning
2019-11-04 10:01:10 -05:00
Nikolay Martynov 92f62ca954 Fix scala warning 2019-11-04 08:22:20 -05:00
Laplie Anderson 9e26da85be wsclient -> play-ws 2019-11-01 14:37:06 -04:00
Tyler Benson 0e825d79fa
Merge pull request #1076 from DataDog/tyler/isolate-deprecated-usage
Fix scopemanager comaptability for OT 0.33.0
2019-11-01 10:57:47 -07:00
Tyler Benson 86ed30d5af Fix scopemanager comaptability for OT 0.33.0
Also add simple regression test.
2019-10-31 14:58:31 -07:00
Laplie Anderson 68f8607dbf Fix latestDepTest dependencies 2019-10-31 11:48:52 -04:00
Laplie Anderson 3a1d331525 WSClient instrumentation 2019-10-31 11:12:00 -04:00
Laplie Anderson 64d6d39e78
Merge pull request #1074 from DataDog/landerson/circular-redirect
Add "testCircularRedirects" option to HttpClientTest
2019-10-31 10:29:36 -04:00
Tyler Benson 6885849254
Merge pull request #1061 from fujigon/feature/fix-npe-in-jaxrs-inst-for-default-impl
fixes NPE in jaxrs instrument with interface with default method and its impl class.
2019-10-30 16:36:19 -07:00
Laplie Anderson 8a2594eeab Add "testCircularRedirects" option to HttpClientTest 2019-10-30 18:17:49 -04:00
Tyler Benson 8e48a70c6d Fix jax-rs Path annotation inheritance
Turns out the class level path annotation overrides parent classes, so we only need to find the nearest one.

We also need to look from the instance’s class, not from where the method is defined.

Commented out a test case because we still need to compile against java 7.  That case will be added back when we upgrade to java 8.
2019-10-30 11:39:06 -07:00
kfujita b0e7e6a3f9 - fix test compile setting
- code format with google formatter
2019-10-30 08:57:13 -07:00
kfujita d8bd12bef8 This patch fixes NPE in jaxrs instrument which occurs when we use interfaces with default method and its impl class.
- reproduce NPE error with JaxRs class and interfaces in JavaInterfaces
- fix the logic target class of method with @Path annotation to avoid NPE
- setting java 1.8 for jaxrs's test
2019-10-30 08:57:13 -07:00
dougqh 733342de5e Begin 0.37.0 2019-10-29 17:06:24 -04:00
dougqh 69f4570585 Version 0.36.0 2019-10-29 15:22:47 -04:00
Laplie Anderson 6ae6113e25
Merge pull request #1070 from DataDog/landerson/ot-33-compat
OT 0.33 compatibility
2019-10-29 11:56:14 -04:00
Laplie Anderson 61441e1fbe Remove calls to removed methods 2019-10-29 11:23:09 -04:00
Tyler Benson 5cdbaaf188
Merge pull request #1069 from DataDog/tyler/netty-client-race
Attempt to remove span-ordering race condition with NettyClientTest
2019-10-28 11:05:41 -07:00
Nikolay Martynov 4df2fe814b
Merge pull request #1068 from DataDog/mar-kolya/update-unixsocket-lib
Update unixsocket dependenxy
2019-10-28 13:09:28 -04:00
Tyler Benson 607dd553d4 Attempt to remove span-ordering race condition with NettyClientTest 2019-10-28 09:50:56 -07:00
Tyler Benson e4bc90d15d
Merge pull request #1067 from DataDog/tyler/db-connection
Add span when calling DataSource.getConnection with a trace.
2019-10-28 08:41:55 -07:00
Tyler Benson a903f20dc4
Merge pull request #1050 from DataDog/tyler/servlet-depth
Add new integration for Servlet Filters, HttpServlet, and RequestDispatcher
2019-10-28 08:39:56 -07:00
Tyler Benson a2d8296a00
Merge pull request #1066 from DataDog/tyler/servlet-prop
Fix servlet propagation for “tail-call” situations
2019-10-28 08:07:42 -07:00
Douglas Q Hawkins e8064d97c5
Merge pull request #1063 from DataDog/dougqh/health-metrics1
Health Metrics
2019-10-28 09:54:21 -04:00
Nikolay Martynov 813a9b93b4 Update unixsocket dependenxy
This seems to fix strange build errors
2019-10-28 08:37:18 -04:00
Tyler Benson 6703bd96bb Fix servlet propagation for “tail-call” situations
Sometimes servlets will call another servlet by “resetting” the request object.  This maintains the attributes previously set, including the span.  We want to allow the trace to start if there’s no “active trace” even if there is a span attribute.
2019-10-25 17:01:47 -07:00
Tyler Benson a3a1467192 Add span when calling DataSource.getConnection with a trace.
Disabled by default, and only creates a span if existing trace detected.

To enable:
* System Property: `-Ddd.integration.jdbc.enabled=true`
* Environment Variable: `DD_INTEGRATION_JDBC_ENABLED=true`
(Or more specifically with `jdbc-datasource`.)
2019-10-25 16:02:39 -07:00
Tyler Benson 425156115c Add new integration for Servlet Filters, HttpServlet, and RequestDispatcher
Disabled by default, and only creates a span if existing trace detected.

To enable all of them:
* System Property: `-Ddd.integration.servlet.enabled=true`
* Environment Variable: `DD_INTEGRATION_SERVLET_ENABLED=true`

(They have independent configs as well.  If needed, view the source below.)
2019-10-25 14:47:48 -07:00
Tyler Benson df387b486a
Merge pull request #1064 from DataDog/tyler/spring-controller-refactor
Refactor JAX-RS Annotation and Spring Controller/Handler Instrumentation
2019-10-25 14:44:07 -07:00
dougqh 96f6c42459 Adding StatsD tests
Adding a happy & comm failure test case for StatsDMonitor.

This checks some but not all of the counters but also makes sure the exceptional path branches are exercised.

To make this test possible, I added an additional constructor to StatsDMonitor that takes a StatsDClient.
2019-10-25 17:26:11 -04:00
Tyler Benson b30d857f85
Merge pull request #1065 from DataDog/tyler/refactor-servlet
Refactor Servlet Advice
2019-10-25 13:31:08 -07:00
Tyler Benson fa80fee15d Refactor JAX-RS Annotation and Spring Controller/Handler Instrumentation
For spring:
* Move more logic to the decorator.
* Use a fixed operation name, but set the resource name.
* Rename the root span instead of the parent span (If there are other spans in between this could make a difference.)  Not sure what impact this would have if multiple controllers are called (ie, forward/include).

For Jax-rs:
* Rename the root span instead of the parent span (same concern as above with spring)
2019-10-25 10:19:25 -07:00
Tyler Benson 7ae5de1fc6 Refactor Servlet Advice
Moving directory structure around.
Combining advice, trying to make it propagate better.
2019-10-25 10:09:19 -07:00
Tyler Benson 00fe40f1fb
Merge pull request #1026 from trask/dd-next
Thoughts for after #1020
2019-10-25 09:20:24 -07:00
dougqh 101e519a3f Adding StatsDMonitor
Adding StatsDMonitor to DDAgentWriter

Modified Writer.createAgentWriter to read the health Monitor configs and construct StatsDMonitor when health metrics are enabled

Updated DDTracerTest to check for use of appropriate Monitor class depending on the Config
2019-10-25 12:11:40 -04:00
Nikolay Martynov 5d090b17c4
Merge pull request #1062 from DataDog/mar-kolya/update-gradle
Update gradle to 5.6.3
2019-10-25 12:05:45 -04:00
dougqh 22ac1edfe2 Adding configuration variables needed for StatsD metric support 2019-10-25 11:29:49 -04:00
dougqh 30a987208a Introducing DDAgentWriter.Monitor
Introducing a Monitor for DDAgentWriter

Monitor can be used to track critical lifecycle events in the publishing of spans.  This change only contains a NoopMonitor, but a StatsD variant will be added in later commit.

The DDAgentWriter has been altered to take a Monitor instance at construction for the purposes of testing the Monitor.

DDAgentWriter now includes tests to count spans published and sent -- including new tests for multi-threaded writing and slow agent response scenarios.
2019-10-25 11:22:54 -04:00
dougqh 71cb23fdb4 Introducing DDApi.Response
Changing the DDApi send methods to return a new Response object instead of a boolean result.

The Response object allows additional information to be propagated to the DDAgentWriter that is needed for helath monitoring.

Beyond success / fail represented by DDApi.Response.success, this includes...
- communication exception to the agent
- status code returned by the agent
- JSON parsing exception caused by bad payload returned by the agent

DDApiTest-s have also been updated to check response.success() but also to check response.status() as appropriate.
2019-10-25 10:14:04 -04:00