Commit Graph

384 Commits

Author SHA1 Message Date
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 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
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 61441e1fbe Remove calls to removed methods 2019-10-29 11:23:09 -04: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
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
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
Laplie Anderson 81707e1d46 Treat empty proc file as not running in container 2019-10-21 12:04:39 -04:00
Tyler Benson 296916a393 Avoid submitting a job if executor is shutdown
There’s still a possiblilty of a race condition and we could catch and handle the exception, but this should reduce the noise a bit.
2019-10-18 11:24:33 -07:00
Tyler Benson 557d45a9fe Changes required for OT 0.32
This seems backwards compatable with 0.31 since all changes are additional, so this should be safe.
2019-10-17 13:54:56 -07:00
Tyler Benson 017b9609eb Add compatibility tests for OpenTracing 0.31.0 2019-10-15 14:28:25 -07:00
Nikolay Martynov 1ce38ba84b Disable flush when writer has been shutdown 2019-10-11 08:30:22 -04:00
Nikolay Martynov 22e8887282 Make sure flush cannot happen after disruptor shutdown
Otherwise flish event gets stuck in disruptor forever.
2019-10-11 08:10:32 -04:00
Tyler Benson a5bce0cf0f Avoid using ConcurrentLinkedDeque.size
It is a linear operation that can take a long time when many spans are involved.

Using an atomic integer to track the size allows it to be a constant operation.
2019-10-10 16:24:41 +02:00
Will Tran 63c6db0cd5
Ensure baggage can always be added to
Otherwise it could be assigned to a Collections.emptyMap()
Fixes https://github.com/DataDog/dd-trace-java/issues/1036
2019-10-09 13:01:44 -04:00
Tyler Benson 9ef3332140 Extract base test class and move Config class changes there. 2019-10-07 18:51:25 +02:00
Tyler Benson 82d60c27f4 Fix codeNarc 2019-09-27 15:04:41 -07:00
Tyler Benson 05c95100ab Minor optimization to avoid using BigInteger if possible 2019-09-25 18:14:40 -07:00
Tyler Benson 2086664f6d Reduce overhead of URLAsResourceName decorator
Using `new URL()` just to parse the path out was rather expensive.  This should improve the situation.
2019-09-17 18:50:01 -07:00
Tyler Benson 3d1f2b9d01 Ensure default sampler is available
This avoids the possible null pointer reference.
2019-09-10 15:29:13 -07:00
Tyler Benson 310ec93135 Minor test fix. 2019-09-10 15:08:55 -07:00
Tyler Benson a010d4e095 Remove race condition. 2019-09-10 14:56:03 -07:00
Tyler Benson 8cd294dba0 Use ThreadLocalRandom for improved concurrency. 2019-09-10 14:04:37 -07:00
Tyler Benson a88182ab3b fix test 2019-09-10 12:56:42 -07:00
Tyler Benson 42545a0906 Remove synchronization from RateByServiceSampler
This change avoids lock contention in a hot code path.

I also added double check locking in ClassLoaderMatcher to reduce the need of locking there.
2019-09-10 12:44:13 -07:00
Tyler Benson df017e044a
Merge pull request #975 from DataDog/tyler/split-by-tag
Add new setting to allow renaming service by tag
2019-09-05 14:24:20 -07:00
Tyler Benson 8177b95164 Make config modifiable and still allow tag to be set. 2019-09-03 18:51:39 -07:00
Tyler Benson 82f5076716 Add new setting to allow renaming service by tag
This is a more generic form of the previous `split-by-domain` and `split-by-instance`.

(Note: evaluation is done when a tag is set, so If multiple tags are configured, the last tag set will take precidence.)

For example, this setting can be used to rename `aws-sdk` spans to be identified with the corresponding `aws.service` tag:

```
-Ddd.trace.split-by-tags=aws.service
```

There are some slight differences with this setting compared with`dd.trace.http.client.split-by-domain` and `dd.trace.db.client.split-by-instance`.  `split-by-tags` applies to every span, where `split-by-domain` and `split-by-instance` only apply to http and db client spans respectively.
2019-09-03 16:55:47 -07:00
Alex Antonov bf15ea1f5a Added tests for Haystack propagation support 2019-09-03 14:29:15 +02:00
Alex Antonov 93ae2678ff Added support for Haystack trace propagation 2019-09-03 11:04:01 +02:00
Tyler Benson 13b794c504
Merge pull request #917 from DataDog/tyler/null-span-in-scope
Assert span in scope can't be null and add tests to verify
2019-07-18 13:43:19 -07:00
Tyler Benson 17d26a4934 Assert span not null and use NoopSpan instead. 2019-07-18 12:38:49 -07:00
Laplie Anderson 5956f51e07 Change container info to a singleton ContainerInfo
DDTraceOTInfo wasn't the best place for container information.  Changed ContainerInfo.java to have a static instance
2019-07-17 13:01:08 -04:00
Laplie Anderson 719bf0ad76 Remove reference to private repo 2019-07-17 12:00:31 -04:00
Laplie Anderson d03a2a95e2 Change to @Getter/@Setter to be above coverage threshold
Since toString(), equals(), and hashCode() are never called, the code coverage for the classes are too low.

In the future, we should ignore code coverage of lombok generated methods
2019-07-16 19:09:00 -04:00
Laplie Anderson 4853801813 Add container id headers to request builder 2019-07-16 18:29:59 -04:00
Laplie Anderson 9dbe3a0a17 Fix part of path to match 2019-07-16 18:29:59 -04:00
Laplie Anderson d74ffc3db0 Parsing tests from RFC and reference impl 2019-07-16 18:29:59 -04:00
Laplie Anderson 369658c200 Initial cgroups parsing implementation 2019-07-16 18:29:59 -04:00
Tyler Benson e08e3a787c Allow null to be set in Scope for Span
This is useful to temporarily remove a trace from scope for a defined period.
2019-07-15 19:11:51 -07:00
Nikolay Martynov b3c970d6c7 Formatting fix 2019-07-11 13:45:40 -04:00
Laplie Anderson aa3303022d Send jvm vendor as header to agent (#909) 2019-07-10 16:28:10 -04:00
Tyler Benson 21c22d6985 Fix log message and add ignores
Also add CODEOWNERS
2019-05-24 11:44:10 -07:00
Luca Abbati ad3401b815
Apply suggestions from CR #827 2019-05-17 10:15:03 +02:00
Luca Abbati 1d5dd5b28a
Refactor merging application root span tags with jmx base tags 2019-05-16 19:54:25 +02:00
Luca Abbati 85684f955b
Remove unused imports from test 2019-05-16 14:51:27 +02:00
Luca Abbati 2a975b31ee
Adapt test to new DDTracer constructor and unserializable field 2019-05-16 14:35:56 +02:00
Luca Abbati 10069847a3
Define the concept of applicationRootSpanTags and apply only to root
tags
2019-05-16 12:25:43 +02:00
Luca Abbati 0e9f9d9d02
Refactor names of DDSPan's methods to interact with root span
The naming of methods in DDSpan used to detect/retrieve the root span
for a fiven span were slightly misleading. Specifically 'isRootSpan()'
returned true if and only if the span is the root span of teh entire
trace(even in the context of distributed tracing), while getRootSpan()
return the root span of the trace fragment generated by the currently
traced application. I hope that trenaming such methods to
'isTraceRootSpan()' and 'getApplicationRootSpan()' respectively will
help adding some clarity.
The old method names have not been removed for backward comptibility
reasons and tests have been added, but they have been marked as
deprecated.
2019-05-16 11:31:37 +02:00
Luca Abbati 23ffcf0fce
Apply workaround to refresh configuration values during tests 2019-05-15 16:00:14 +02:00
Luca Abbati c8a04b0a4f
Refactor hostname detection in tracer 2019-05-15 13:42:43 +02:00
Luca Abbati 7fd16d1eef
Add tests for hostname detection 2019-05-13 18:31:15 +02:00
Luca Abbati c15ecc8026
Properly format code 2019-05-13 11:48:38 +02:00
Luca Abbati 938740569f
Set the hostname on root spans 2019-05-10 16:12:15 +02:00
Tyler Benson 03f44bd8b9
Merge pull request #807 from DataDog/tyler/exclude-config
Add config allowing classes to be excluded from transformation
2019-04-23 10:37:01 -07:00
Luca Abbati 0d0fa55f21
Sort decorators factory list alphabetically 2019-04-23 11:52:37 +02: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
Luca Abbati 6e825afef2
Move from ForcedSampling tags to standard DDTags based tags 2019-04-19 16:21:35 +02:00
Luca Abbati 6cbdc2005e
Restore erroneously removed getTags method from span context 2019-04-19 10:42:36 +02:00
Luca Abbati 19e9fb83bb
Remove obsolete forced tracing method from span context 2019-04-19 09:20:17 +02:00
Luca Abbati d6a5255e8f
Keep tag decorators count in tests up to date 2019-04-18 14:22:09 +02:00
Luca Abbati fc5b72f86b
Fixed indentations based on google style rules 2019-04-18 13:17:21 +02:00
Luca Abbati 7e157e0561
Move implementation of manual sampling via tag from span to decorators 2019-04-18 13:11:33 +02:00
Luca Abbati 9b705fee2f
Fix code styles errors 2019-04-17 16:46:18 +02:00
Luca Abbati 762930bebd
Run code formatter 2019-04-17 15:19:10 +02:00
Luca Abbati bff7ac8174
Simplify business logic to set force tracing as a tag 2019-04-17 14:39:54 +02:00
Luca Abbati f92e2bbdf6
Rebrand priority sampling while being BC with legacy approach to set it 2019-04-17 14:31:39 +02:00
Tyler Benson a11b888d7a Update ratpack instrumentation and remove default disabled. 2019-04-08 18:26:08 -07:00
Nikolay Martynov de980c2d52
Merge pull request #787 from DataDog/mar-kolya/compiler-config-fix
Mar kolya/compiler config fix
2019-04-01 09:15:39 -04:00
Tyler Benson e4c0175ed0
Merge pull request #785 from DataDog/tyler/pendingtrace-init
Ensure that PendingTrace.SPAN_CLEANER initialized with Tracer
2019-03-29 10:22:07 -07:00
Tyler Benson bc9b96222d Add fixme for future testing task. 2019-03-29 10:03:53 -07:00
Nikolay Martynov 65630a702d Make SpanCleaner initialization explicit 2019-03-29 12:21:17 -04:00
Nikolay Martynov 4c8a790c3b DDTracer: minor javadoc fix 2019-03-29 09:42:52 -04:00
Tyler Benson a9760f24fc Ensure that PendingTrace.SPAN_CLEANER initialized with Tracer
Otherwise it might get initialized by a different classloader which would prevent that classloader from being unloaded.
2019-03-28 11:26:43 -07:00
Masayasu Yamamoto e5c504bceb Fix log message 2019-03-28 22:38:01 +09:00
Tyler Benson 2052647ec9 Fix content length calculation for larger trace counts
Failure to calculate this correctly causes the agent to drop the request.
2019-03-27 15:06:07 -07:00
Tyler Benson f98884235f Review changes. 2019-03-21 08:10:36 -07:00
Tyler Benson 2a49998180 Allow truncation for 128 bit B3 headers.
This is accepted practice in the Zipkin community, so we shouldn’t break this.
2019-03-20 16:02:32 -07:00
Nikolay Martynov 2c5d2ce70d Create TagContext during B3 headers extration 2019-03-20 12:28:39 -07:00
Nikolay Martynov 42cc3594dc Improve injection/extraction styles configuration 2019-03-20 12:28:39 -07:00
Nikolay Martynov 4eb7936245 Implement B3 headers extraction and injection 2019-03-20 12:28:39 -07:00
Tyler Benson 7ffcf5ad4d Change DDAgentWriter to use Disruptor
Serialize payloads as they arrive, send to agent when size exceeds 5MB.

If a flood of traces fills up the RingBuffer, we still count the traces that are discarded for stats reporting.

Do we want to allow configuration of the RingBuffer size?
2019-03-19 09:44:23 -07:00
Nikolay Martynov f3cef4a1e1 Implement HTTP timeout when sending traces to Datadog agent
To ensure we do not pile up traces causing memory overconsumption if agent is slow to respond.
2019-03-15 11:44:19 -07:00
Nikolay Martynov 63e0c0f032 Support Unix Domain Socket proxy to send traces 2019-03-15 11:36:44 -07:00
Tyler Benson 0f07776191 Agent doesn’t like getting floats.
Convert to doubles instead.
2019-03-14 14:36:14 -07:00
Tyler Benson 50279d64fe Span type should only be an attribute and not inherited
Previously we were inheriting from the parent and also often setting as a tag.

Apply default span assertion to verify the spanType is being checked properly. (Include error state too.)
2019-02-28 12:39:51 -08:00
Tyler Benson 99f2d97cd5 review fixes 2019-02-26 08:32:43 -08:00
Tyler Benson a33b6ddaa0 Implement trace origin header and propagation support 2019-02-26 08:26:31 -08:00
Tyler Benson db47fde8d1 Group Elasticsearch instrumentation into common folder
Also migrate to decorator.
2019-02-22 13:28:11 -08:00
Tyler Benson 9c8e689b6d Add decorator for couchbase instrumentation 2019-02-21 15:27:26 -08:00
Tyler Benson 4dd4ee0c05 Trace Analytics Config
Also make the instrumentation names a sorted list so the evaluation order is consistent.
2019-02-20 10:56:14 -08:00
Nikolay Martynov f33600d1f2
Merge pull request #701 from DataDog/mar-kolya/improve-executor-instrumentation
Allow non-wrapped tasks in disabled executors
2019-02-11 12:18:36 -05:00
Nikolay Martynov bae2d7dde8 Allow non-wrapped tasks in disabled executors
Some executors cannot handle tasks that have been wrapped into
`{Runnable,Callable}Wrapper` because they require certain subclass of
`{Callable,Runnable}` in order to work. We have a test that
effectively disables instrumentation for such executors.

This change makes sure that tasks that do not need to be
wrapped (which essentially means anything that is not lambda) still
get traced in such executors. One notable example of affected executor
type is `ScheduledThreadPoolExecutor`.
2019-02-11 11:47:34 -05:00
Tyler Benson 8a4c2815d2
Merge pull request #700 from DataDog/tyler/api-tracer-shutdown
New API: Add shutdown callback to shutdown the Tracer
2019-02-11 08:21:55 -08:00
Nikolay Martynov b672a0fffc Fix ContinuableScope bug when parent span was not closed after scope was closed 2019-02-08 20:13:32 -05:00
Tyler Benson 0e1dce868c Log exceptions from Tracer.finalize() 2019-02-08 11:09:24 -08:00
Tyler Benson 65add99a7b Make shutdown callback weakly reference the tracer.
This should allow finalize to actually be called.  (Also assumes the weak reference isn’t cleared until after finalize is called.)
2019-02-08 11:04:23 -08:00
Tyler Benson 2283040a5b Make internal name usage consistent with setting name. 2019-02-08 10:26:40 -08:00
Nikolay Martynov 931e6ff8af
Merge pull request #688 from DataDog/mar-kolya/webflux-fixes
Fix webflux integration to not rely in active span
2019-02-07 12:45:50 -05:00
Tyler Benson 996c1ce625 invert instanceof check 2019-02-06 08:35:10 -08:00
Tyler Benson 326577d7df Remove codec for inject/extract
In preparation for OT 0.32 support.
2019-02-05 15:07:33 -08:00
Nikolay Martynov 16fe4bd370 Add some debug logging to ContinuableScope 2019-02-05 10:10:49 -05:00
Tyler Benson 03bcdc97cc Move awaitGC to common utility package 2019-01-25 10:32:09 -08:00
Tyler Benson 68d93ce969
Merge pull request #640 from DataDog/tyler/event-sampling
Initial support for setting Event Sample Rate via tags
2019-01-22 08:22:46 -08:00
Nikolay Martynov 2a7cebc311 Add support for partial trace flush
Add a configuration option and logic to flush purtial traces to the
agent if ongoing trace becomes too large.
2019-01-17 09:09:50 -05:00
Tyler Benson bbfcb26cd1 Implement support for setting Event Sample Rate via tags
This only adds the API, no changes to the integrations.
2019-01-04 15:26:12 -08:00
Tyler Benson 82dcc3ce6c
Merge pull request #629 from DataDog/ark/jmx-tagging
Add languages tag to jmx/runtime tags
2018-12-28 09:34:20 -08:00
Tyler Benson 761ea7042a Fix size calculations and improve DDTracerTest 2018-12-27 17:08:46 -08:00
Tyler Benson 8b910b46d1 Update tests for `language` tag in root span 2018-12-27 16:00:47 -08:00
Andrew Kent e9f1436522 Additional continuable-scope tests 2018-12-19 17:12:58 -08:00
Andrew Kent 1ed64da10e Add internal scope listener api 2018-12-19 13:21:07 -08:00
Andrew Kent 5132f0da4b wip: Add languages tag to jmx/runtime tags 2018-12-17 13:32:50 -08:00
Andrew Kent 2dfc3ed465 Do not set the sampler rate for RateByServiceSampler 2018-12-13 08:24:09 -08:00
Andrew Kent 52eaacc929 Enable priority sampling by default 2018-12-12 18:29:08 -08:00
Nikolay Martynov 7728f9918e Remove shutdown hook when DDTracer is shutdown
This is similar to the problem with weak map supplier and may lead to
a memory leak if we created/estroy many DDTracer objects.
2018-12-05 15:02:44 -05:00
Nikolay Martynov 2e8dc9d08f Fix Ratpack tests that got broken by ExecutorInstrumentation refactoring
It turns out closing continuation also closes parent span. This is not
very good in cases when we end up not using continuation if
continuation in a state has already been setup.

This patch provides way to close continuation in a way that doesn't
affect parent scope.
2018-11-29 15:21:46 -08:00
henry-megarry 001c5f7349 implementing add reference to work with opentracing-spring-cloud-starter 2018-11-21 14:27:13 -06:00
Tyler Benson e888b170c4
Merge pull request #582 from DataDog/tyler/servlet-dispatch
Fix servlet async dispatch
2018-11-16 15:06:38 -08:00
Tyler Benson 93c046a664 Add support for DD_TRACE_AGENT_PORT setting
Makes this more consistent with other apm language clients.
2018-11-16 11:09:26 -08:00
Tyler Benson cde02e1ae5 Fix servlet async dispatch
Finish existing trace and propagate to the next request.

Improve dispatch testing.
2018-11-16 08:55:11 -08:00
Andrew Kent d2a8b7fb28 Ensure tracer traceCounter is always shared with DDApi 2018-11-16 08:16:18 -08:00
Nikolay Martynov 1b43a18eb4 Put back DDTracer constructor that got removed 2018-11-15 11:57:42 -05:00
Tyler Benson 188bdf498f Add comments and remove unneeded code. 2018-10-23 16:40:39 +10:00
Tyler Benson a603eee841 Fix issue with saving tags when not propagating trace.
Previously, when setting headers as tags, the tags would only be saved if the request was propagated from another trace.
2018-10-23 16:37:22 +10:00
Nikolay Martynov 34372533c1 Add config for tags that propagate to JMXFetch and spans
Also add runtime-id tag to root span and JMXFetch metrics
2018-10-22 15:51:20 -04:00
Tyler Benson 78c6f881ed
Merge pull request #535 from DataDog/tyler/rabbit
Add instrumentation for RabbitMQ’s AMQP library
2018-10-19 23:26:50 +10:00
Isak W 57f021c631 Add test case for trace/span id serialization 2018-10-18 00:45:23 +02:00
Tyler Benson 8ffeb5bedf Add instrumentation for RabbitMQ’s AMQP library 2018-10-17 16:32:24 +10:00
Isak W 484d54d796 Parse trace/span id as BigInteger rather than letting msgpack parse it 2018-10-16 23:07:50 +02:00
Tyler Benson 432ce89a07 Add assertTraces to AgentTestRunner with implied argument
This will also help with auto complete when writing tests.
2018-10-15 10:19:00 +10:00
Tyler Benson 8b822ff26d Fix AWS tests and change span type to http-client
There seems to be a bug.  I would expect the aws span to be the parent of the apache http span, but that is not the case.

Removed the now unused HTTPComponent decorator.
2018-09-28 21:23:30 -04:00
Tyler Benson 4eb0cd4097 Refactor Apache HttpClient Instrumentation.
Removes the need for DDTracingClientExec.
Reduces extra spans.
Does not include a span for each redirect.
Compatible with 4.0+ instead of just 4.3+.
2018-09-28 17:52:39 -04:00
Nikolay Martynov caa799ddc1 Refactor DDTraceConfig to a Config we can use globally
This would allow us to use same configuration ingrastructure in
different modules. E.g. upcoming JMX.
2018-09-12 17:14:58 -04:00
Andrew Kent 7154b54e10 Rename TracerBridge and Provider 2018-08-27 12:04:26 -07:00
Andrew Kent 9f1d22ea6b Register TracerBridge in TracerInstaller instead of DDTracer init 2018-08-27 12:04:26 -07:00
Andrew Kent e565205d77 TraceInterceptor registration api 2018-08-27 12:04:26 -07:00
Andrew Kent ab14c85fcf
Merge pull request #459 from DataDog/ark/gc-span-closing
gc span closing
2018-08-27 11:57:37 -07:00
Andrew Kent bc105af06f Doc PendingTrace's root span. 2018-08-27 11:33:21 -07:00
Andrew Kent 29b9da5fb1 Add getRootSpan() to MutableSpan 2018-08-27 11:02:29 -07:00
Andrew Kent e0837efb5b Fix remove PendingTrace from span cleaner bug 2018-08-27 10:58:07 -07:00
Andrew Kent 9d4933011e Fix flickering PendingTraceTest 2018-08-27 10:58:07 -07:00
Andrew Kent a6b2e1f27c Don't report traces closed by garbage collection. 2018-08-24 10:13:32 -07:00
Nikolay Martynov c95baef487 Wait for given reference to get GCed in `waitGC`
This should help to make sure that object we are interested in
actually gets GCed.

This change also improves tests for PendingTrace and ScopeManager to
make sure that trace gets cleaned up.
2018-08-21 10:05:10 -04:00
Nikolay Martynov a0036a76cc Add `runFinalization` to `waitForGC` 2018-08-19 00:49:27 -04:00
Tyler Benson e07dfffe5f Migrate tests to new TestHttpServer 2018-08-16 14:23:58 +10:00
Tyler Benson f801cbd466
Merge pull request #428 from DataDog/tyler/use-WeakConcurrentMap
Use WeakConcurrentMap
2018-08-13 16:44:16 +10:00