Commit Graph

3645 Commits

Author SHA1 Message Date
Pontus Rydin ed42c83b50 Refactored grpc instumenter (#72)
* Refactored grpc instrumenter

* Cleaned up formatting

* Simplified interceptors

* Fixed some more formatting

* Formatting

* Addressed maintainer comments
2020-01-18 12:09:50 -08:00
Pontus Rydin 736c70ffe0 Refactored spymemcached (#67)
* Refactored spymemcached

* Fixed formatting issues

* Fixed formatting in an accidentally changed file

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2020-01-16 19:36:32 -08:00
Tyler Benson 1d474353a5
Merge pull request #64 from trask/dd-merge
Merge changes from dd-trace-java 0.41.0
2020-01-16 16:09:50 -08:00
Trask Stalnaker f25af170bf Merge remote-tracking branch 'upstream/master' into dd-merge 2020-01-16 08:52:32 -08:00
Trask Stalnaker c47f92c6b0 Merge tag 'v0.41.0' into dd-merge 2020-01-15 21:50:25 -08:00
Pontus Rydin 686f72e02f Fixed test issues (#62) 2020-01-15 20:17:30 -08:00
Trask Stalnaker 80d36902a0
Initial work towards using OpenTelemetry API directly from instrumentation (#55)
* Rename setTag to setAttribute

* Deprecate Agent API

* Update base decorators

* Update akka-http

* Update google-http-client

* Update apache-httpasyncclient

* Update aws-java-sdk-1.11.0

* Update apache-httpclient

* Add SpanScopePair

* Shade OpenTelemetry usage in instrumentation

* Temp: exclude base decorators from code coverage

* Update datastax-cassandra

* Update dropwizard

* Update elasticsearch

* Update couchbase-2.0 and rxjava friends

* Update couchbase-2.6
2020-01-15 17:53:41 -08:00
Trask Stalnaker 8b0a140ed7
Update muzzle maven URL to use https (#61)
Also add a test.

Co-authored-by: Tyler Benson <tylerbenson@gmail.com>
2020-01-15 14:43:34 -08:00
Trask Stalnaker 71d264fd00
Rename package to io.opentelemetry.auto (#54)
* Remove publishing info

* Remove Datadog-Meta-Lang handling

* Misc renames

* Rename DD_ constant field names

* Rename DDSpanTypes to SpanTypes

* Rename DDTags to MoreTags

* Rename DDSpecification to AgentSpecification

* Rename DDLocationStrategy to AgentLocationStrategy

* Rename DDCachingPoolStrategy to AgentCachingPoolStrategy

* Rename DDTransformers to AgentTransformers

* Script: rename datadog.trace to io.opentelemetry.auto

find -wholename */datadog/trace -exec mkdir -p {}/../../io/opentelemetry \; -exec mv {} {}/../../io/opentelemetry/auto \;

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i 's/datadog\.trace\./io.opentelemetry.auto./g'
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i 's/datadog\/trace\//io\/opentelemetry\/auto\//g'

find -type f -name "*.gradle" | xargs sed -i 's/datadog\.trace\./io.opentelemetry.auto./g'
find -type f -name "*.gradle" | xargs sed -i 's/datadog\/trace\//io\/opentelemetry\/auto\//g'

* Script: rename more packages

find -wholename */datadog/test -exec mkdir -p {}/../../io/opentelemetry \; -exec mv {} {}/../../io/opentelemetry \;
find -wholename */datadog/smoketest -exec mkdir -p {}/../../io/opentelemetry \; -exec mv {} {}/../../io/opentelemetry \;
find -wholename */datadog/perftest -exec mkdir -p {}/../../io/opentelemetry \; -exec mv {} {}/../../io/opentelemetry \;
find -wholename */datadog/benchmark -exec mkdir -p {}/../../io/opentelemetry \; -exec mv {} {}/../../io/opentelemetry \;
find -wholename */datadog/loadgenerator -exec mkdir -p {}/../../io/opentelemetry \; -exec mv {} {}/../../io/opentelemetry \;

# keep these outside of io.opentelemetry.auto for now at least (things under io.opentelemetry.auto are not instrumented)
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh | xargs sed -i 's/datadog\.test\b/io.opentelemetry.test/g'
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh | xargs sed -i 's/datadog\.smoketest\b/io.opentelemetry.smoketest/g'
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh | xargs sed -i 's/datadog\.perftest\b/io.opentelemetry.perftest/g'
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh | xargs sed -i 's/datadog\.benchmark\b/io.opentelemetry.benchmark/g'
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh | xargs sed -i 's/datadog\.loadgenerator\b/io.opentelemetry.loadgenerator/g'

# ok to move this into io.opentelemetry.auto
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh | xargs sed -i 's/datadog\.slf4j\b/io.opentelemetry.auto.slf4j/g'

find -type f -name "*.gradle" | xargs sed -i 's/datadog\.test\b/io.opentelemetry.test/g'
find -type f -name "*.gradle" | xargs sed -i 's/datadog\.smoketest\b/io.opentelemetry.smoketest/g'
find -type f -name "*.gradle" | xargs sed -i 's/datadog\.perftest\b/io.opentelemetry.perftest/g'
find -type f -name "*.gradle" | xargs sed -i 's/datadog\.benchmark\b/io.opentelemetry.benchmark/g'
find -type f -name "*.gradle" | xargs sed -i 's/datadog\.loadgenerator\b/io.opentelemetry.loadgenerator/g'

find -type f -name "*.gradle" | xargs sed -i 's/datadog\.slf4j\b/io.opentelemetry.auto.slf4j/g'

* Intellij: format and organize imports

* Script: More renaming

find -name *.xml | xargs sed -i 's/<logger name="datadog"/<logger name="io.opentelemetry.auto"/g'
find -name *.java | xargs sed -i 's/LoggerFactory.getLogger("datadog")/LoggerFactory.getLogger("io.opentelemetry.auto")/g'
find -name *.java | xargs sed -i 's/"datadog.span"/"opentelemetry.auto.span"/g'
find -name *.java -o -name *.groovy | xargs sed -i 's/"datadog.doesnotexist"/"io.opentelemetry.auto.doesnotexist"/g'

# keep this outside of io.opentelemetry.auto for now at least (things under io.opentelemetry.auto are not instrumented)
find -name *.yaml | xargs sed -i 's/"datadog.benchmark"/"io.opentelemetry.benchmark"/g'

find -type f -name "*.gradle" | xargs sed -i 's/datadog\.forked/io.opentelemetry.auto.forked/g'
find -name *.yml | xargs sed -i 's/datadog\.forked/io.opentelemetry.auto.forked/g'

* Improve comment

* Script: rename dd- modules

git mv dd-java-agent java-agent
git mv java-agent/dd-java-agent.gradle java-agent/java-agent.gradle
git mv dd-trace-api trace-api
git mv trace-api/dd-trace-api.gradle trace-api/trace-api.gradle
git mv dd-smoke-tests smoke-tests
git mv smoke-tests/dd-smoke-tests.gradle smoke-tests/smoke-tests.gradle

git mv dd-trace-java.gradle trace-java.gradle

find -type f -name "*.gradle" | xargs sed -i 's/\bdd-java-agent\b/java-agent/g'
find -type f -name "*.gradle" | xargs sed -i 's/\bdd-trace-api\b/trace-api/g'
find -type f -name "*.gradle" | xargs sed -i 's/\bdd-smoke-tests\b/smoke-tests/g'

find -type f -name "*.gradle" | xargs sed -i 's/\bdd-trace-java\b/trace-java/g'

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh -o -name *.yml | xargs sed -i 's/\bdd-java-agent\b/java-agent/g'
sed -i 's/\bdd-java-agent\b/java-agent/g' .gitignore

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh -o -name *.yml | xargs sed -i 's/\bdd-trace-api\b/trace-api/g'
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh -o -name *.yml | xargs sed -i 's/\bdd-smoke-tests\b/smoke-tests/g'

* Remove unused config - service.name

* Remove unused config - writer.type

* Remove unused config - trace.partial.flush.min

* Script: rename dd. test packages

find -wholename */dd/trace/instrumentation -exec mkdir -p {}/../../io/opentelemetry/test \; -exec mv {} {}/../../io/opentelemetry/test \;
find -wholename */dd/test/trace/annotation -exec mkdir -p {}/../../io/opentelemetry/test \; -exec mv {} {}/../../io/opentelemetry/test \;

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i 's/dd\.trace\.instrumentation\b/io.opentelemetry.test.instrumentation/g'
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i 's/dd\.test.trace\.annotation\b/io.opentelemetry.test.annotation/g'

* Script: rename dd properties

DD_PROP=opentelemetry.auto
DD_ENV=OPENTELEMETRY_AUTO
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\"dd\.\"/\"$DD_PROP.\"/g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\"DD_\"/\"${DD_ENV}_\"/g"

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.integration\./$DD_PROP.integration./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.integrations\./$DD_PROP.integrations./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bDD_INTEGRATION_/${DD_ENV}_INTEGRATION_/g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bDD_INTEGRATIONS_/${DD_ENV}_INTEGRATIONS_/g"

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.trace\./$DD_PROP.trace./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bDdd\.trace\./D$DD_PROP.trace./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bDD_TRACE_/${DD_ENV}_TRACE_/g"

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.logs\./$DD_PROP.logs./g"

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.trace_id\b/$DD_PROP.trace_id/g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.span_id\b/$DD_PROP.span_id/g"

find -type f -name "*.gradle" | xargs sed -i "s/\bdd\.trace\./$DD_PROP.trace./g"
find -type f -name "*.properties" | xargs sed -i "s/\bdd\.trace\./$DD_PROP.trace./g"

# test code
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.prop\./$DD_PROP.prop./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.float\./$DD_PROP.float./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.garbage\./$DD_PROP.garbage./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.negative\./$DD_PROP.negative./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bDD_ENV_/${DD_ENV}_ENV_/g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bDD_FLOAT_/${DD_ENV}_FLOAT_/g"

# test code
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\"is-dd-server\"/\"is-test-server\"/g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bisDDServer\b/isTestServer/g"

* Rename dd-java-tracer.properties to java-tracer.properties

* Rename DDTracingUtil to OpenTelemetryTracingUtil

* Codec.java was removed already

* Rename __datadog to __opentelemetry

* Misc renames

* Script: remove redundant sub-package

find -wholename */io/opentelemetry/auto/agent -exec bash -c "mv {}/* {}/.." \;
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i 's/io\.opentelemetry\.auto\.agent\b/io.opentelemetry.auto/g'

find -type f -name "*.gradle" | xargs sed -i 's/io\.opentelemetry\.auto\.agent\b/io.opentelemetry.auto/g'

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i 's/io\/opentelemetry\/auto\/agent\b/io\/opentelemetry\/auto/g'

* Shorten logging config keys
2020-01-14 13:57:01 -08:00
Trask Stalnaker a3f110a909
Improve sporadic test failures (#52)
* Remove unnecessary span sorting

* Remove blockUntilChildSpansFinished

* Sort traces after waiting for expected number

* Fix sporadic test failure

* Fix sporadic test failure

* Sort spans after waiting for expected number

* Remove unnecessary waitForTraces

* Remove unnecessary trace sorting

* Encapsulate ListWriter data to fix race conditions

* Improve consistency of span ordering in tests

* Update tests to conform with new span ordering

* Update tests to conform with ListWriter changes
2020-01-14 11:36:06 -08:00
Trask Stalnaker de0f3fc3c1
Fix muzzle build (#53)
* Adjust version compatibility to only 2.x

They recently released 3.0.0 which is not compatible with our instrumentation.

* Also update latestDepTest ranges.

Co-authored-by: Tyler Benson <tylerbenson@gmail.com>
2020-01-14 10:56:00 -08:00
Tyler Benson 7fabcaaecb Version 0.41.0 2020-01-14 10:48:14 -08:00
Trask Stalnaker 64fd99862a
Use OpenTelemetry API (#51)
* Remove dd-trace-ot

* Remove disableShadowRelocate

* Remove GlobalTracer and ScopeListener

* Comment out instr depending on activeScope

* OpenTelemetry implementation

* Update instrumentation tests to pass

* Update test infrastruture

* Update spring-webflux instrumentation

* Update jax-rs-annotation instrumentation

* Fix ratpack failing test
2020-01-13 16:51:36 -08:00
Tyler Benson a52a1420db
Merge pull request #1165 from DataDog/tyler/servlet
Add servlet integrations for request and response dispatch back in.
2020-01-13 13:17:29 -08:00
Tyler Benson d42e72b683
Merge pull request #1171 from DataDog/tyler/bb-filter
Remove more declared method filtering for optimization
2020-01-13 13:05:28 -08:00
Tyler Benson ef6cd9c52c
Merge pull request #1170 from DataDog/tyler/couchbase
Adjust version compatibility to only 2.x
2020-01-13 13:04:57 -08:00
Tyler Benson 5fe26f004b Remove more declared method filtering for optimization
Same logic that was applied in #1169
2020-01-13 12:52:41 -08:00
Nikolay Martynov 6bf1e159b0
Merge pull request #1167 from DataDog/mar-kolya/upgrade-jmxfetch
Upgrade jmxfetch to latest version
2020-01-13 15:45:12 -05:00
Tyler Benson 77cdd210c6 Also update latestDepTest ranges. 2020-01-13 12:31:38 -08:00
Nikolay Martynov cb7faee63f Remove logging config from jmxfetch setup
It already uses slf4j
2020-01-13 15:23:04 -05:00
Tyler Benson 603155f56f
Merge pull request #1169 from DataDog/tyler/remove-filter
Optimize HasSuperMethodMatcher logic
2020-01-13 12:11:27 -08:00
Tyler Benson a0f0d45c74 Adjust version compatibility to only 2.x
They recently released 3.0.0 which is not compatible with our instrumentation.
2020-01-13 12:10:57 -08:00
Nikolay Martynov dcc5726797 Fix jmxfetch log level and log location config
Looks like this got lost in b505c60543
2020-01-13 15:05:45 -05:00
Nikolay Martynov d96d8e3c71 Upgrade gradle 2020-01-13 14:46:06 -05:00
Nikolay Martynov d55d13e239 Exclude some dependencies from jmxfetch 2020-01-13 14:45:19 -05:00
Tyler Benson 3eecb03fe2
Merge pull request #1168 from DataDog/tyler/fix-grpc-trace-header
Fixing GRPC `-bin` header unmarshalling
2020-01-13 11:37:54 -08:00
Nikolay Martynov 8b5d89501b Upgrade jmxfetch to latest version 2020-01-13 14:19:03 -05:00
Tyler Benson 25397fd128 Fix formatting and add test. 2020-01-13 11:18:45 -08:00
Bruce Yu 13b84416b9 Blacklisting headers with -bin suffixes in GrpcExtractAdapter 2020-01-13 11:18:45 -08:00
Tyler Benson 49425e9963 Move request-response linking to main servlet advice
servlet-service is off by default, so we can't rely on it being called there.
2020-01-13 10:48:35 -08:00
Tyler Benson e440eba9a1 Enable Servlet request and response dispatcher instrumentation by default.
Change config for Servlet Filter and Service and JDBC DataSource instrumentation so it must be explicitly enabled (won't be enabled by accident if all of servlet is enabled).
2020-01-10 13:51:21 -08:00
Tyler Benson 43fbf28035 Revert "Remove experimental jdbc and servlet integrations until further evaluation"
This reverts commit 2432a92230.
2020-01-10 12:53:24 -08:00
Tyler Benson 6b9c92eefa
Merge pull request #1164 from DataDog/tyler/jdbc-error-handling
Better error handling for getClientInfo in JDBCDecorator
2020-01-09 09:20:46 -08:00
Tyler Benson 7cb24f35c0 Better error handling for getClientInfo in JDBCDecorator
An exception there caused a span to be created but then never finished.
2020-01-08 15:10:54 -08:00
Trask Stalnaker 426b01c7e7
Remove continuation support (#49)
* Remove continuation

* Remove continuation cancel

* Move TraceScope to Agent API

* Remove unnecessary method

* Remove TraceScope

* Remove activeScope

* Fix continuation comments

* Remove AgentScope.Continuation

* Partial revert of "Remove activeScope"
2020-01-07 18:45:08 -08:00
Tyler Benson 5e8af8439a Optimize HasSuperMethodMatcher logic
Instead of filtering then iterating, just iterate through everything and apply filter inline.

This will help avoid allocation for filter iterator and improve if early match is found.
2020-01-07 17:10:01 -08:00
Trask Stalnaker 555c232ea4
Missed merge from dd-trace-java (#47) 2020-01-06 17:10:31 -08:00
Tyler Benson 8500dbc2ba
Merge pull request #1156 from DataDog/tyler/ddagentwriter-split
Split DDAgentWriter into smaller classes
2020-01-03 11:19:28 -08:00
Tyler Benson c370705259
Merge pull request #46 from open-telemetry/otel-dd-merged
Merge changes from dd-trace-java 0.40.0
2020-01-03 10:54:51 -08:00
Tyler Benson 03dd908fdb
Merge pull request #1158 from DataDog/tyler/aws-1-tagging
Add various tags for AWS SDK v1.x
2020-01-03 08:38:56 -08:00
Tyler Benson 4947dc3bd3 Add various tags for AWS SDK v1.x
This brings it inline with the v2 instrumentation.
2020-01-02 13:23:30 -08:00
Tyler Benson dacafe4217
Merge pull request #1157 from DataDog/pawel/rmi-add-client-and-server-info-to-decorators
[rmi] add instrumentation names to client and server decorators, remove default client service name
2020-01-02 11:41:40 -08:00
Tyler Benson e84e6eb25d Merge changes from dd-trace-java 0.40.0
https://github.com/DataDog/dd-trace-java/releases/tag/v0.40.0

# Conflicts:
#	dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java
#	dd-java-agent/instrumentation/akka-http-10.0/src/test/groovy/AkkaHttpServerInstrumentationTest.groovy
#	dd-java-agent/instrumentation/dropwizard/src/test/groovy/DropwizardTest.groovy
#	dd-java-agent/instrumentation/glassfish/src/test/groovy/GlassFishServerTest.groovy
#	dd-java-agent/instrumentation/google-http-client/src/test/groovy/AbstractGoogleHttpClientTest.groovy
#	dd-java-agent/instrumentation/jetty-8/src/test/groovy/JettyHandlerTest.groovy
#	dd-java-agent/instrumentation/play-2.4/src/test/groovy/server/PlayServerTest.groovy
#	dd-java-agent/instrumentation/play-2.6/src/test/groovy/server/PlayServerTest.groovy
#	dd-java-agent/instrumentation/ratpack-1.4/src/test/groovy/server/RatpackHttpServerTest.groovy
#	dd-java-agent/instrumentation/servlet/request-2/src/test/groovy/JettyServlet2Test.groovy
#	dd-java-agent/instrumentation/servlet/request-3/src/test/groovy/AbstractServlet3Test.groovy
#	dd-java-agent/instrumentation/servlet/request-3/src/test/groovy/JettyServlet3Test.groovy
#	dd-java-agent/instrumentation/servlet/request-3/src/test/groovy/TomcatServlet3Test.groovy
#	dd-java-agent/instrumentation/spring-webmvc-3.1/src/test/groovy/test/SpringBootBasedTest.groovy
#	dd-java-agent/src/test/groovy/datadog/trace/agent/JMXFetchTest.groovy
#	dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/HttpServerTest.groovy
#	dd-trace-api/src/main/java/datadog/trace/api/Config.java
#	dd-trace-ot/src/main/java/datadog/opentracing/DDSpan.java
#	dd-trace-ot/src/main/java/datadog/opentracing/decorators/DDDecoratorsFactory.java
#	dd-trace-ot/src/main/java/datadog/trace/common/writer/DDAgentWriter.java
#	dd-trace-ot/src/test/groovy/datadog/opentracing/decorators/SpanDecoratorTest.groovy
#	dd-trace-ot/src/test/groovy/datadog/trace/api/writer/DDAgentWriterTest.groovy
2020-01-02 08:28:06 -08:00
Laplie Anderson 6b6554996a
Merge pull request #1155 from DataDog/landerson/muzzle-scan-classloader-matcher
Add classloader matcher to muzzle scan
2019-12-30 10:12:59 -05:00
Pawel Chojnacki bbaf7278a6 [rmi] remove rmi client service name 2019-12-24 11:59:29 +01:00
Pawel Chojnacki a4b0dcbc9f [rmi] add instrumentation names to client and server decorators 2019-12-23 19:05:34 +01:00
Tyler Benson ab33ed4a02 Begin 0.41.0 2019-12-23 10:04:47 -08:00
Tyler Benson b8210ceea5 Version 0.40.0 2019-12-23 09:33:30 -08:00
Pawel Chojnacki 65c701dd51
Merge pull request #1128 from DataDog/pawel/add_rmi_support
Add RMI support
2019-12-23 14:38:46 +01:00
Pawel Chojnacki f71ba14016 [rmi] use simple thread local for propagating context
+ add more documentation
2019-12-23 13:25:14 +01:00