Nikolay Martynov
c844501bc5
Fixes for some minor checkstyle complaints
2018-07-23 10:04:53 -04:00
Nikolay Martynov
ce7866d018
Use `io.opentracing.log.Fields.*` instead of hardcoded strings
2018-07-23 10:04:53 -04:00
Nikolay Martynov
d4d770fe42
Pull out ratpack helper into seprate class to avoid copy-paste
2018-07-23 10:04:53 -04:00
Nikolay Martynov
a882a5439c
OkHttp instumentation: simplify error case
2018-07-23 10:04:53 -04:00
Nikolay Martynov
9d2755be17
Fix Google Java Formater violations
...
Some changes landed on master that do not comply with new formatter rules
2018-07-23 13:43:29 +10:00
Nikolay Martynov
4283e3acb1
Merge pull request #396 from DataDog/mar-kolya/test-http-client-timeout-increase
...
Increase build stability by increasing some http client timeouts
2018-07-22 21:35:32 -04:00
Tyler Benson
9988c8775f
Merge pull request #388 from DataDog/tyler/grpc
...
Instrument gRPC 1.5.0+
2018-07-23 11:19:48 +10:00
Nikolay Martynov
564b4e9dc3
Increase build stability by increasing some http client timeouts
...
This makes build more resilient to slow boxes and high parallelism
2018-07-22 00:41:37 -04:00
Nikolay Martynov
f1466304e8
Move random port generation to actual usage in tests using listening ports
2018-07-20 11:57:37 -04:00
Nikolay Martynov
c3825d9d52
Improve tmp dir handling in ES tests
...
Also make sure ES ports are allocated right before ES is started
2018-07-20 11:53:33 -04:00
Tyler Benson
a34f7b849b
Instrument gRPC
...
Adds spans for the duration of the connection and child spans for each message.
Also propagates the trace using the metadata object.
2018-07-20 12:25:04 +10:00
Tyler Benson
aa3fc0717e
Fix some formatting changes.
2018-07-20 10:31:14 +10:00
Nikolay Martynov
7c62e10542
Do not use advice class names in Lettuce instrumentation directly
...
Since this leads to Java8 code loaded into Java7 JVM in tests.
Insted reference class names by string.
2018-07-19 10:45:21 -04:00
Tyler Benson
12a2fce96d
Upgrade java formatter version.
2018-07-19 14:10:53 +10:00
Andrew Kent
46428dc6a3
Enable Lettuce instrumentation by default
2018-07-18 18:45:46 -07:00
Andrew Kent
23d0439b12
Remove muzzle dead code, doc cleanup, and better logging
2018-07-13 16:24:01 -07:00
Andrew Kent
2925df8de5
Clean up and document
2018-07-10 17:26:49 -04:00
Andrew Kent
8e182edc03
Replace BIPUSH with LDC to prevent overflow
2018-07-10 17:26:49 -04:00
Andrew Kent
33ec3f0304
Add missing ratpack helper
2018-07-10 17:26:49 -04:00
Andrew Kent
6faf63d6d8
Add missing memcached helper
2018-07-10 17:26:49 -04:00
Andrew Kent
ce73c403bf
Elasticsearch5 helpers
2018-07-10 17:26:49 -04:00
Andrew Kent
628f4929dc
Muzzle Assertions and gradle plugin
2018-07-10 17:26:49 -04:00
Andrew Kent
541a6998a4
Hook up muzzle to Instrumenter.Default's matcher
2018-07-10 17:26:49 -04:00
Andrew Kent
d61f65f4ff
Muzzle outline in Instrumenter.Default
2018-07-10 17:26:49 -04:00
Andrew Kent
836f49205b
TraceConfigInstrumentation implements Instrumenter directly
2018-07-10 17:26:49 -04:00
Gary Huang
bfc49e869e
Make connections always close on test case completion.
2018-07-09 17:55:52 -04:00
Gary Huang
6bd7cf0675
Fixes #379 .
...
Connection pools were creating proxy connection objects, so the proxy objects were cached. By unwrapping the proxies, the connection objects will be correctly cached and identified.
Refactored tests to use connection pools, and hsqldb connections only on statements (since they will not make a USER() query in a getMetaData call).
2018-07-09 17:55:52 -04:00
Andrew Kent
02a3e6a5d3
New Instrumentation API
2018-07-06 17:17:32 -04:00
Andrew Kent
33a139cdcb
New Instrumentation outline
2018-06-28 14:54:14 -07:00
Andrew Kent
f8e3ac3097
New instrumentation api outline
2018-06-28 14:54:14 -07:00
Andrew Kent
0360bd01ee
Merge pull request #378 from DataDog/ark/cassandra-fix
...
Remove most shadow relocates
2018-06-27 11:56:33 -07:00
Andrew Kent
3894f829bb
Remove most shadow relocates
...
Shadow relocates are no longer needed because of our new bootstrapping
process.
It's no longer possible for agent dependencies to interfere with the
user's classpath.
The immediate reason for this change is a bug created in the Cassandra
instrumentation.
The Cassandra instrumentation references guava transitive deps from
the datastax driver. These references are re-written by shadow,
causing the instrumentation to reference 'datadog.agent.deps.google.*'
instead of the guava class.
2018-06-27 09:35:54 -07:00
Gary Huang
cc7bb7943f
Merge pull request #354 from DataDog/gary/jsp-integration-branch
...
Generic JSP instrumentation with Tomcat Jasper compilation instrumentation.
2018-06-26 18:35:09 -04:00
Nikolay Martynov
8d6392fa94
Remove timeouts from lagom tests
...
It looks like server is started lazily and on laptop it may take over
5 seconds in parallel build. This means in may take long time on CI as
well.
It is in fact unikely that server will never return so adding timeout
introduces flakiness and doesn't really protect from any real-life
problems. Instead of hardcoding timeouts just rely on build eventually
giving up on its own one way or another.
2018-06-26 15:48:04 -04:00
Nikolay Martynov
44b63ea5ca
Rename AkkaHttpInstrumentation to AkkaHttpServerInstrumentation
...
To be able to put client instrumentation in more consistent way
2018-06-26 15:41:59 -04:00
Nikolay Martynov
3ac866b0f9
Merge pull request #371 from DataDog/tyler/servlet-user
...
Set servlet’s user-principal as a tag when available
2018-06-26 13:41:13 -04:00
Andrew Kent
15c0f9a6b2
Akka-http-server renames
2018-06-26 09:55:32 -07:00
Nikolay Martynov
a0d99e70fb
Add tests to servlet intrumentation to verify that username is set correctly
2018-06-25 21:54:20 -04:00
Gary Huang
46e7036701
fix version scan and test versions
2018-06-25 16:54:45 -04:00
Tyler Benson
9899256381
Set servlet’s user-principal as a tag when available
2018-06-25 11:24:35 +10:00
Gary Huang
eddb48f3e2
refactored tests, added parent-children relationship between spans in tests. Still need to figure out version scan and versions to support.
2018-06-22 18:24:06 -04:00
Gary Huang
e90bcf624a
add unit tests for jsp rendering (servicing requests), change to instrument generic jsp level rendering.
2018-06-22 18:24:06 -04:00
Gary Huang
b1d06299cc
JSP instrumentation
...
WIP: more unit tests to come
2018-06-22 18:24:06 -04:00
Nikolay Martynov
7405b7711b
Merge pull request #369 from DataDog/mar-kolya/increase-timeouts-in-url-connection-test
...
Increase timeouts in UrlConnection test
2018-06-22 17:17:04 -04:00
Nikolay Martynov
60a0722390
Increase timeouts in UrlConnection test
...
Before those timeouts where set to 10ms which legitimatelly can come
before server (even localhost) has a chance to reply with 'connection
refused'.
This should fix flaky test.
2018-06-22 16:57:31 -04:00
Nikolay Martynov
1fbb33d182
More fixes to Lettuce tests
...
Lettuce intrumentatio is implemented in a way that after operation has
been performed `span` is not closed syncronously - in fact this happens
on separate thread. This means `spans` for even syncronous operations
may be closed on opposite order.
This means that writing tests that pefrom two operations and expect
two traces is slightly more complicated. In many places we can just
avoid doing that by preparing necessary data in `setup`.
This fixes some of the false negatives in tests.
2018-06-22 16:44:58 -04:00
Nikolay Martynov
770f77a7ff
Merge pull request #367 from DataDog/mar-kolya/reduce-number-of-compile-workers
...
Reduce number of gradle workers during compile
2018-06-22 16:07:46 -04:00
Andrew Kent
8a666784a6
Close Jetty Handler scope
2018-06-22 11:53:39 -07:00
Nikolay Martynov
7882e4fe23
Make ES tests more deterministic by using listener pool with 1 thread
...
This should reduce number of false negatives in ES tests
2018-06-22 14:23:06 -04:00
Nikolay Martynov
c050b4acd8
Merge pull request #366 from DataDog/mar-kolya/fixes-for-lettuce-tests
...
Fix some flakiness in Lettuce tests
2018-06-22 11:01:30 -04:00
Nikolay Martynov
389f65687a
Fix some flakiness in Lettuce tests
...
It looks like automatic reconnection was enabled which lead to random
traces popping up in random places when Redis server was shutdown.
Also make sure that server persists only during single test to weedout
all inter-test dependencies.
2018-06-21 17:44:19 -04:00
Nikolay Martynov
79d7b9c062
JMS1/2: change resource names according to PR comments
2018-06-21 14:10:50 -04:00
Nikolay Martynov
37fdbf9188
JMS2: Fix `receiveNoWait` instrumentation and instrument `receive(timeout)`
2018-06-21 13:28:19 -04:00
Nikolay Martynov
3be5a78a53
JMS1: make resouce names more descriptive
2018-06-21 13:28:19 -04:00
Nikolay Martynov
fe118adc6e
JMS1: Fix `receiveNoWait` instrumentation and instrument `receive(timeout)`
2018-06-21 13:28:19 -04:00
Nikolay Martynov
bb4026234d
Refactor JMS1 integration tests
2018-06-21 13:28:19 -04:00
Nikolay Martynov
beb91446c7
Increase Cassandra embedded server start up timeout
...
To try to make tests less prone to false positives.
2018-06-21 12:00:26 -04:00
Tyler Benson
83db4e8c4d
Merge pull request #352 from DataDog/tyler/netty
...
Netty HTTP client and server instrumentation
2018-06-21 14:11:12 +10:00
Nikolay Martynov
9cc99bafbf
Simplify Jacoco configuration
2018-06-20 17:13:30 -04:00
Nikolay Martynov
e070a9be4a
Fix jacoco excluded classes concatenation
2018-06-20 17:05:16 -04:00
Nikolay Martynov
71a991fcaa
Update jacoco exclusions to exclude things not hit during test runs
2018-06-20 17:01:01 -04:00
Nikolay Martynov
da5cd0724b
Merge pull request #362 from DataDog/mar-kolya/enable-coverage-in-CI
...
Enable coverage checks in CI for java8
2018-06-20 15:15:49 -04:00
Nikolay Martynov
21d58768cb
Lettuce: properly close connection instead of letting it being GCed
2018-06-19 22:41:58 -04:00
Andrew Kent
46b9cd35b9
Merge pull request #350 from DataDog/ark/lagom
...
akka-http instrumentation and lagom tests
2018-06-19 15:17:09 -07:00
Nikolay Martynov
b0c2ab9b68
Lettuce: wait for trace after setup code
...
Otherwise that trace may land at some random point in time after and
cause flaky tests.
2018-06-19 15:15:29 -04:00
Andrew Kent
519f15bcc6
Merge pull request #357 from DataDog/ark/servlet-async
...
Close scope for async servlet requests
2018-06-17 23:44:24 -07:00
Tyler Benson
c0da1f7093
Add version scan.
2018-06-18 12:52:42 +10:00
Tyler Benson
43e31eae80
Separate out instrumentation for netty 4.0 from 4.1
2018-06-18 12:52:42 +10:00
Tyler Benson
9b3df4ff9e
Netty HTTP client and server instrumentation first pass
...
Doesn’t target right versions. Needs lots of testing.
2018-06-18 12:52:42 +10:00
Andrew Kent
93281f775a
Clean up akkahttp-server/lagom tests
2018-06-15 14:30:23 -07:00
Andrew Kent
2cfd7bf911
Allow Unit tests to skip expected instrumentation errors.
2018-06-15 13:25:41 -07:00
Andrew Kent
7ac2bdfc22
Add akka-http to play 2.6 tests
2018-06-15 12:48:57 -07:00
Andrew Kent
5a77ac3749
akka-http sync and async tests
2018-06-15 12:48:57 -07:00
Andrew Kent
6b7dda3657
Instrument akka-http function handler instead of akka-streams
2018-06-15 12:48:57 -07:00
Andrew Kent
004b88f634
Initial Lagom Test
2018-06-15 12:48:57 -07:00
Andrew Kent
109f2cead4
Akka-http instrumentation and test
2018-06-15 12:48:57 -07:00
Nikolay Martynov
d278cd48a7
Merge pull request #359 from DataDog/mar-kolya/spymemcached-instrumentation
...
Make spymemcached disabled by default
2018-06-15 15:29:52 -04:00
Nikolay Martynov
0e62ee8ec6
Make spymemcached instrumentation disabled by default
2018-06-15 14:25:51 -04:00
Nikolay Martynov
f9cc33c7c8
Merge pull request #353 from DataDog/mar-kolya/spymemcached-instrumentation
...
Mar kolya/spymemcached instrumentation
2018-06-15 12:44:42 -04:00
Andrew Kent
6cd8be67d5
Close scope for async servlet requests
2018-06-14 20:23:54 -07:00
Andrew Kent
f28445c45f
CorrelationIdentifier for MDC frameworks.
2018-06-14 15:33:15 -07:00
Nikolay Martynov
1e4c88ffcb
Merge branch 'master' into mar-kolya/spymemcached-instrumentation
2018-06-14 15:38:01 -04:00
Nikolay Martynov
dd8f5ced07
Spymemcached: be slightly mode defensive in instumentation
2018-06-14 13:37:35 -04:00
Nikolay Martynov
ba37ccc552
Spymemcached: use cache span type
2018-06-14 13:37:35 -04:00
Nikolay Martynov
940633b388
Spymemcached: Make abstract method in CompletionListener
2018-06-14 13:37:31 -04:00
Nikolay Martynov
2c9f8a2b71
Fix ES rest client latest dep tests by forcing 6.2.+ since our instrumentation doesnt work properly with 6.3.+
2018-06-14 10:31:45 -04:00
Nikolay Martynov
30695555f9
Spymemcached: remove unnecessary unboxing and minor cleanup
2018-06-13 22:43:36 -04:00
Nikolay Martynov
dafd52cb7a
Spymemcached: add instumentation
2018-06-13 22:38:18 -04:00
Tyler Benson
ff56389a56
Upgrade some versions.
2018-06-14 11:56:56 +10:00
Nikolay Martynov
63c4cdff87
Memcached testing: add support for testoingcontainers
2018-06-13 13:06:23 -04:00
Gary Huang
adbab8692c
Merge pull request #336 from DataDog/gary/lettuce-integration-branch
...
lettuce 5 redis client integration
2018-06-13 09:18:01 -04:00
Nikolay Martynov
0fa972ec77
Merge branch 'master' into mar-kolya/slick-instrumentation
2018-06-09 00:06:17 -04:00
Gary Huang
429ee40f81
add workaround to avoid certain commands from crashing the trace agent.
2018-06-08 23:53:13 -04:00
Gary Huang
fdc56c0e13
change the way classes are loaded so that classLoaderHasClasses would still work for the classes that are being instrumented and being matched at the same time.
2018-06-08 23:53:13 -04:00
Gary Huang
42b586badf
remove recording of redis command arguments for now to avoid leaking sensitive data
2018-06-08 23:53:13 -04:00
Gary Huang
0bc9d9c08d
remove string constants in advice class and comment fixes
2018-06-08 23:53:13 -04:00
Gary Huang
b694ecdf79
add version scan and rename instrumentation classes
2018-06-08 23:53:13 -04:00
Gary Huang
3d61d839c8
make commands with no return values (void or Mono<Void>) to finish spans early in order to record command ran.
...
added support for cancellation of commands in async and reactive APIs.
since flux is a stream of events, when the stream is complete, the number of events emitted are recorded in the tag db.command.results.count
created helper class LettuceInstrumentationUtil
2018-06-08 23:53:13 -04:00
Gary Huang
bfdf4c858a
lettuce reactive api for mono publishers completed.
2018-06-08 23:53:13 -04:00
Gary Huang
989a259ec2
Fix code with suggestions from Tyler regarding previous commit.
...
no longer includes the command argument if the redis command being called is AUTH since it contains sensitive information.
2018-06-08 23:53:13 -04:00