Commit Graph

286 Commits

Author SHA1 Message Date
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 bbfd02befc Update Jackson to 2.9.9.3
As recommended by https://nvd.nist.gov/vuln/detail/CVE-2019-14379

(Remove unused dependency)
2019-08-12 16:41:57 -07: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
Nikolay Martynov 7863a68a53 Fix typo 2019-06-06 09:41:36 -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