Commit Graph

147 Commits

Author SHA1 Message Date
dougqh 22ac1edfe2 Adding configuration variables needed for StatsD metric support 2019-10-25 11:29:49 -04:00
Tyler Benson 9ef3332140 Extract base test class and move Config class changes there. 2019-10-07 18:51:25 +02:00
dougqh c08ea1ff73 when -> which 2019-09-24 09:33:01 -04:00
Nikolay Martynov b50ab7e0dd Add back deprecated field 2019-09-10 12:57:50 -04:00
Nikolay Martynov 3b34970d52 Rename SERVICE -> SERVICE_TAG constant
To make meaning more clear
2019-09-10 11:41:44 -04: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
Douglas Q Hawkins 2e5766ece9
Merge pull request #974 from DataDog/dougqh/no-lang-client-spans
Ensure "client" spans do not set the language tag
2019-09-05 13:38:25 -04: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
dougqh 1d087574fd Removing unused imports
Removing unused imports caught by codeNarc
2019-09-03 16:49:20 -04:00
dougqh 4851cc9069 Re-running format through gradle
Need to figure out why IntelliJ and gradle are behaving differently for import order
2019-09-03 16:16:13 -04:00
dougqh 57beee76d2 Running Google Code Formatter
Changes here are all non-functional -- and in methods unrelated to the core change
2019-09-03 14:09:46 -04:00
dougqh 3e2ef885a5 Ensure "client" spans do not set the language tag
The core changes are in Config and ServerDecorator.

Moved default tagging from Config::getRuntimeTags to Config::getLocalRootSpanTags.  This changes the result of Config::getMergedJmxTags as well.

To preserve language for servers changed ServerDecorator::afterStart.

Other changes are in tests - the most complicated part is in TagsAssert::defaultTags.  This now contains a bit too much conditional logic for my liking.
2019-09-03 13:20:50 -04:00
Alex Antonov 93ae2678ff Added support for Haystack trace propagation 2019-09-03 11:04:01 +02:00
Laplie Anderson f853916dce Get hostname in a smarter way
Attempt to get hostname through environment variables and command before going to DNS
2019-07-19 17:35:52 -04:00
Laplie Anderson 331b8c8e99 Add resource name to the @Trace annotation 2019-07-19 09:52:19 -04:00
Laplie Anderson d80406843f Add "http.query.string" and "http.fragment.string" to DDTags 2019-06-21 14:05:34 -04:00
Luca Abbati d865a1a249
Format code 2019-06-17 08:22:44 -04:00
Luca Abbati a3be0cbf9f
Merge branch 'master' of github.com:DataDog/dd-trace-java into labbati/config-file 2019-06-17 08:11:50 -04:00
Luca Abbati d0b32147a8
Be more friendly for config file to unix users using tilde for home 2019-06-17 08:10:50 -04:00
Luca Abbati f578c9ccf2
Remove system properties and envs left-over in Config tests 2019-06-14 11:50:11 +02:00
Tyler Benson 4c5793bddf Add `dd.trace.db.client.split-by-instance` Config 2019-06-13 15:52:37 -07:00
Luca Abbati 12dc7c4fd8
Remove unused imports 2019-06-13 14:35:32 +02:00
Luca Abbati da05772897
Add properties file to a comment listing all the source of configuration 2019-06-13 14:35:32 +02:00
Luca Abbati bfd9680d75
Fix typos 2019-06-13 14:35:32 +02:00
Luca Abbati 076c2b1b4e
Removing synchronized as the load properties method no longer set the static istance 2019-06-13 14:35:32 +02:00
Luca Abbati 4dd6708852
Update comment on Config class to show new functionality 2019-06-13 14:35:31 +02:00
Luca Abbati 1d57a5873b
Tests for functionality: Config fallback to properties files 2019-06-13 14:35:31 +02:00
Luca Abbati 6fc69ba64e
Config to fallback to properties file to load settings 2019-06-13 14:35:31 +02:00
Luca Abbati d0fbbf85ce
Format code 2019-06-12 14:35:48 +02:00
Luca Abbati e1ceda8f0e
Improve config usage as instance based on CR 2019-06-12 14:00:36 +02:00
Luca Abbati 1dc8467c26
Merge branch 'master' of github.com:DataDog/dd-trace-java into labbati/non-static-config 2019-06-06 18:11:43 +02:00
Nikolay Martynov 7863a68a53 Fix typo 2019-06-06 09:41:36 -04: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 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 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 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
Luca Abbati b09aa1a59d Enable JMXFetch by default 2019-05-23 11:09:07 -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
Luca Abbati 06f13fd570
Simplify how we calculate local root span tags 2019-05-17 22:32:03 +02:00
Luca Abbati 7a9d54d2c1
Avoid setting hostname tag on local root span if empty (followup) 2019-05-17 22:01:14 +02:00
Luca Abbati 0da9991805
Avoid setting hostname tag on local root span if empty (followup) 2019-05-17 22:00:44 +02:00
Luca Abbati 3b8257a123
Avoid setting hostname tag on local root span if empty 2019-05-17 21:55:02 +02:00
Luca Abbati 6399fee839
Remove caching of hostname detection in config class 2019-05-17 17:46:16 +02:00
Luca Abbati 8b2b83bc13
Merge branch 'master' of github.com:DataDog/dd-trace-java into labbati/hostname 2019-05-17 10:16:43 +02: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 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