Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

guanceV1120 #36

Merged
merged 385 commits into from
Apr 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
385 commits
Select commit Hold shift + click to select a range
36ac43d
Merge pull request #4902 from DataDog/rgs/profiling-tracing-integration
richardstartin Mar 15, 2023
8e6086e
apply spotless
theJC Mar 16, 2023
cd2028b
reduce the number of noisy log statements
richardstartin Mar 16, 2023
7d7fdf5
Merge pull request #4907 from DataDog/rgs/noisy-logging
richardstartin Mar 16, 2023
e112a82
Removed redundant hash lookups in measured method filter
nayeem-kamal Mar 16, 2023
f324508
Fix merge of rule data provided in the config file
cataphract Mar 16, 2023
a4514e5
Taint spring path and matrix variables
cataphract Mar 14, 2023
29c9dc8
Refactor data collection instrumentation
jpbempel Mar 7, 2023
6e23380
add _dd.trace prefix to built in tracing based profiling attributes
richardstartin Mar 16, 2023
3ed2f8b
removed redundant null/empty check in measuredmethodfilter
nayeem-kamal Mar 16, 2023
c031d75
added comment pointing to tracer docs for config format
nayeem-kamal Mar 16, 2023
d7af2c9
Merge pull request #4909 from DataDog/rgs/dd-trace-prefixes
richardstartin Mar 16, 2023
c47fa0c
Merge pull request #4908 from DataDog/glopes/fix-merge-rule-data
cataphract Mar 17, 2023
f5bbc23
remove gRPC queueing time instrumentation
richardstartin Mar 17, 2023
0102e95
Upgrade jmxfetch to 0.47.5 to fix CVE-2022-1471
bantonsson Mar 17, 2023
511a815
Merge pull request #4915 from DataDog/rgs/remove-queueing-time
richardstartin Mar 17, 2023
5da4e70
bump jplib to 0.26.0
richardstartin Mar 17, 2023
104c6bd
Merge pull request #4916 from DataDog/ban/fix-master-CVE-2022-1471
bantonsson Mar 17, 2023
98748cf
Merge pull request #4917 from DataDog/rgs/bump-jplib-26
richardstartin Mar 17, 2023
0bef391
Muzzle toolchain support (#4913)
mcculls Mar 17, 2023
bf59dae
Support using the Java tracer with both -javaagent and -jar at the sa…
mcculls Mar 20, 2023
d9c3727
Include JDK system classes in muzzle build-time checks, so types like…
mcculls Mar 20, 2023
7c54cf3
aws sdk - naming schema
amarziali Mar 20, 2023
14dae4d
add schema version metric to local root
amarziali Mar 20, 2023
de8c3dc
Avoid ClassNotFoundException when resteasy-spring attempts to process…
mcculls Mar 20, 2023
382a184
WIP testing
nayeem-kamal Mar 20, 2023
756f23c
WIP Test fixes
nayeem-kamal Mar 20, 2023
8dd5fff
fixed typo + spotlessApply
nayeem-kamal Mar 20, 2023
9d869e7
Add missing method instrumentation for javax.servlet.RequestDispatche…
ygree Mar 16, 2023
1383491
Ignore all generated classes from Weld
tobli Mar 20, 2023
c6f6b6c
Reorganize commit section
jpbempel Mar 20, 2023
543e74e
Merge pull request #4923 from DataDog/andrea.marziali/naming-aws
amarziali Mar 21, 2023
5c3f2f9
service naming: all datastore service is dd_service for v1
amarziali Mar 20, 2023
c4a2bc5
Merge pull request #4926 from DataDog/andrea.marziali/schema-version-…
amarziali Mar 21, 2023
713ebd2
Merge pull request #4906 from DataDog/jpbempel/snapshot-refactor
jpbempel Mar 21, 2023
64b5a1f
Allow using Java agent arguments to provide config properties (#4888)
nikita-tkachenko-datadog Mar 21, 2023
3872679
Merge pull request #4927 from DataDog/andrea.marziali/naming-datastor…
amarziali Mar 21, 2023
33eabf9
Build-time instrumenting toolchain support (#4919)
mcculls Mar 21, 2023
4bad092
Merge pull request #4929 from tobli/additional_weld_ignores
mcculls Mar 21, 2023
decf4c6
Allow unknown sampling priorities from external sources
bantonsson Mar 21, 2023
b61a18d
Merge pull request #4930 from DataDog/ban/allow-external-sampling-prio
bantonsson Mar 21, 2023
256cdd1
Add java.net.HttpClient instrumentation
amarziali Nov 21, 2022
5b5236c
Cleanup static imports
mcculls Mar 21, 2023
5fca96b
Remove unnecessary intermediate classes (instrumenters can refer to a…
mcculls Mar 21, 2023
52af9c6
Replace lambdas with concrete classes/method-refs so they can be inje…
mcculls Mar 21, 2023
f7fc67a
Update muzzle directive to reflect correct JDK
mcculls Mar 21, 2023
266c369
fixed tests
nayeem-kamal Mar 21, 2023
79f1a50
Fix muzzle check that now passes for GraphQL 13.+
ygree Mar 21, 2023
aecf46b
Merge pull request #4663 from theJC/fieldSpanTags
ygree Mar 21, 2023
3f7b7b6
Report evaluation error inline in message
jpbempel Mar 21, 2023
56367c2
Merge pull request #4662 from theJC/improveSanitizer
ygree Mar 21, 2023
59d9600
Fix muzzle check fo GraphQL to exclude v13
ygree Mar 21, 2023
35466e6
Merge pull request #4939 from DataDog/ygree/graphql-muzzle-check-fix
ygree Mar 21, 2023
4706a78
Adding RequestContext slot for CI Visibility (#4900)
Mar 21, 2023
ebb5c25
Merge pull request #4936 from DataDog/jpbempel/report-el-error-inline
jpbempel Mar 22, 2023
5a88334
fix test and implement v1 naming conventions for java http client
amarziali Mar 21, 2023
721b507
Add version to snapshot and probe status
ojung Jan 27, 2023
a27e414
Merge pull request #4626 from DataDog/ojung/DEBUG-1223-add-version-to…
ojung Mar 22, 2023
6ffdc4d
Setup python 3.9 for system tests
cbeauchesne Mar 22, 2023
f210b8d
marked flaky test
nayeem-kamal Mar 22, 2023
4ab8bce
Add padding to b3 propagation headers
bantonsson Mar 22, 2023
9a9e189
Merge pull request #4372 from DataDog/andrea.marziali/hackaton2022
amarziali Mar 22, 2023
9adcd5d
Separate matrix/path params; other misc changes
cataphract Mar 15, 2023
359d329
Merge pull request #4943 from DataDog/cbeauchesne/system-tests-python
cbeauchesne Mar 22, 2023
2fedd74
Merge pull request #4901 from DataDog/glopes/spring-boot-path-paramet…
cataphract Mar 22, 2023
635e295
rework profiling context API (#4914)
richardstartin Mar 23, 2023
1a3c877
Jersey instrumentation for IAST (#4670)
DDJavierSantos Mar 23, 2023
0c578d2
Update jplib to 0.27.0 (#4946)
jbachorik Mar 23, 2023
dc801dc
Merge pull request #4945 from DataDog/ban/b3-padding
bantonsson Mar 23, 2023
f88daca
Merge pull request #4904 from DataDog/ygree/fix-spring-jetty-error-path
ygree Mar 23, 2023
4f82e0b
Remove additional probes in ProbeDefinition
jpbempel Mar 23, 2023
f3980d5
removed unused variable
nayeem-kamal Mar 23, 2023
be9e274
added tests into main PR
nayeem-kamal Mar 23, 2023
62cdc85
fixed test
nayeem-kamal Mar 23, 2023
03f04de
fixed codenarc violation
nayeem-kamal Mar 23, 2023
7e0caee
Merge pull request #4950 from DataDog/jpbempel/remove-additional-probes
jpbempel Mar 23, 2023
c866812
fixed tests and updated metric
nayeem-kamal Mar 23, 2023
1fc81e0
Fix matching source filename with different paths
jpbempel Mar 24, 2023
085613c
Docker base image on release (#4956)
robertomonteromiguel Mar 24, 2023
836b75e
address comments
jpbempel Mar 24, 2023
177f75f
Merge pull request #4957 from DataDog/jpbempel/fix-different-path
jpbempel Mar 24, 2023
adb4fc8
fixed tests
nayeem-kamal Mar 24, 2023
e0ff085
Remove active attribute in probe definitions
jpbempel Mar 24, 2023
cfb934a
Merge pull request #4959 from DataDog/jpbempel/remove-active-filtering
jpbempel Mar 24, 2023
a935d85
removed unused imports
nayeem-kamal Mar 24, 2023
eb7a0c6
Improve Open Telemetry tracer API instrumentation (#4947)
PerfectSlayer Mar 24, 2023
818231e
Set resource name to operation name (or query when anonymous) to make…
theJC Mar 25, 2023
a96395b
Exclude all classes under 'io.opentelemetry.javaagent' from being tra…
mcculls Mar 27, 2023
bf7f0a8
moved tests to separate file
nayeem-kamal Mar 27, 2023
08a2ef0
Implement DBM-APM feature for JDBC instrumentation (#4847)
jmeunier28 Mar 27, 2023
adce1fe
merged with master
nayeem-kamal Mar 27, 2023
8123b55
Fix test-case spans to always be root spans (#4965)
nikita-tkachenko-datadog Mar 27, 2023
7effc53
Merge pull request #4738 from DataDog/nayeem-kamal/measured-methods-c…
nayeem-kamal Mar 27, 2023
98860a1
Rename GraphQL query->source tag to align it with the dd-trace-js ins…
ygree Mar 27, 2023
3880007
Added forked test to test new trace annotation operation names
nayeem-kamal Mar 27, 2023
b87d111
Merge pull request #4968 from DataDog/ygree/graphql-query-tag-rename
ygree Mar 27, 2023
fa75eac
Added DSM to dd-trace-api
kr-igor Mar 27, 2023
d8c6d1d
Minor cleanup
kr-igor Mar 28, 2023
c8111b5
spotlessApply changes
kr-igor Mar 28, 2023
cdf18ed
Merge pull request #4845 from DataDog/ygree/add-missing-debug-statements
ygree Mar 28, 2023
cf5a7fe
Properly support async data fetchers returning CompletableFuture
theJC Mar 24, 2023
3974cfc
Update per MR
theJC Mar 28, 2023
bc47bdf
Update to handle CompletableFuture.isDone case immediately instead of…
theJC Mar 28, 2023
106f5c8
catch IllegalArgumentException
am312 Mar 28, 2023
836ee38
Add snapshot serialization timeout check
jpbempel Mar 24, 2023
51e0cd8
Add session level visibility support for Gradle (#4894)
nikita-tkachenko-datadog Mar 28, 2023
8508658
fix notCapturedreason
jpbempel Mar 28, 2023
50907f4
Merge pull request #4971 from DataDog/jpbempel/serialization-timeout
jpbempel Mar 28, 2023
d92fbef
Support retrieving context-stores by class name, for situations where…
mcculls Mar 28, 2023
72655d5
Enable ddprof allocation profiling for JDK 11+ by default (#4958)
jbachorik Mar 28, 2023
8ecaccd
Fix instrumentation of annotated/DD_TRACE_METHODS on GraalVM (#4974)
mcculls Mar 28, 2023
8ded15c
Merge pull request #4896 from theJC/GraphqlCompletableFutureFetcherFix
ygree Mar 28, 2023
912f36f
Merge pull request #4970 from DataDog/andrew.munn/urldecode-exception…
am312 Mar 28, 2023
d6c6fe2
Updated build configuration
kr-igor Mar 28, 2023
6ddf3d9
Correct tag order
kr-igor Mar 28, 2023
69a6d36
Added empty string check for arguments
kr-igor Mar 28, 2023
81b665d
Consistent parameter naming
kr-igor Mar 28, 2023
3c009a6
Fixed opentracing tests
kr-igor Mar 29, 2023
e3a811b
bump jplib to 0.28.0
richardstartin Mar 29, 2023
244fb38
Update codeowners for appsec (#4976)
smola Mar 29, 2023
634c368
Temporarily pin awssdk to 2.20.33 for aws-java-sqs-2.0:latestDepTest …
mcculls Mar 29, 2023
2546a68
Update muzzle ranges to account for new dropwizard-client releases (#…
mcculls Mar 29, 2023
c6865e3
Disable flaky tests
jpbempel Mar 29, 2023
8370084
Merge pull request #4983 from DataDog/jpbempel/disable-timeout-test
jpbempel Mar 29, 2023
d738619
Report eval error in case of uncaught exception
jpbempel Mar 28, 2023
b1ed239
Remove env & version tag check for probes
jpbempel Mar 29, 2023
8e540a2
Fix flakiness of serialization timeout tests
jpbempel Mar 29, 2023
ac89f2d
Added test for DataStreamsContextCarrierAdapter
kr-igor Mar 29, 2023
5c1999a
Temporarily pin awssdk to 2.20.33 for aws-java-sdk-2.2:latestDepTest
bantonsson Mar 29, 2023
d83fbfe
styling fixes
kr-igor Mar 29, 2023
6c92fce
Merge pull request #4981 from DataDog/rgs/jplib-0.28.0
richardstartin Mar 29, 2023
2264b92
Made DataStreamsContextCarrierAdapter constructor private
kr-igor Mar 29, 2023
b8fab98
Return NOOP DSM Checkpointer
kr-igor Mar 29, 2023
2ce917e
Merge pull request #4990 from DataDog/ban/really-fix-aws-sdk
bantonsson Mar 29, 2023
9f5ee16
Minor cleanup
kr-igor Mar 29, 2023
07e02ea
Moved DataStreamsCheckpointer to experimental API
kr-igor Mar 29, 2023
8c76a92
Styling fixes
kr-igor Mar 29, 2023
453e6bb
Moved NoOp class under DataStreamsCheckpointer
kr-igor Mar 29, 2023
76f25ae
Styling fixes
kr-igor Mar 29, 2023
d5214e8
Merge pull request #4982 from DataDog/jpbempel/eval-uncaught-exception
jpbempel Mar 30, 2023
07c47b9
Merge pull request #4988 from DataDog/jpbempel/fix-flaky-timeout-tests
jpbempel Mar 30, 2023
8fb5763
Merge pull request #4986 from DataDog/jpbempel/remove-env-version-fil…
jpbempel Mar 30, 2023
9be66e8
WAF Metrics over Telemetry (#4980)
ValentinZakharov Mar 30, 2023
bfc3f1d
Added health metrics around trace construction
nayeem-kamal Mar 30, 2023
0bfcb39
Initial version of the vert.x instrumentation (#4805)
manuel-alvarez-alvarez Mar 30, 2023
45e1b91
remove resource name tag
richardstartin Mar 30, 2023
38ad247
Merge pull request #4995 from DataDog/rgs/remove-resource-name-tag
richardstartin Mar 30, 2023
f07abb2
Merge pull request #4969 from DataDog/kr-igor/public-dsm-interface
kr-igor Mar 30, 2023
8ec2d05
Add span decoration config
jpbempel Mar 29, 2023
4e609c1
ZIO 2.0 instrumentation
dmytr Mar 5, 2023
317c935
bump jplib to 0.29.0
richardstartin Mar 30, 2023
d47ed75
Merge pull request #4998 from DataDog/jpbempel/span-decoration
jpbempel Mar 30, 2023
3554e93
Merge pull request #5000 from DataDog/rgs/jplib-0.29.0
richardstartin Mar 30, 2023
5f30502
Merge pull request #4960 from theJC/operationAsResourceName
ygree Mar 30, 2023
5b0ae0e
Mark GraphQLVxForkedTest as flaky
bantonsson Mar 31, 2023
bee34e3
Improvements to misc IAST stuff
cataphract Mar 30, 2023
c6ee334
Merge pull request #5001 from DataDog/ban/mark-gql-flaky
bantonsson Mar 31, 2023
1000588
Mark SynapseVxForkedTest as flaky (#5002)
smola Mar 31, 2023
c4b1dd5
Rework SQS queue tracking (#4941)
mcculls Mar 31, 2023
6c6bdfc
disable datadog profiler by default
richardstartin Mar 31, 2023
703c714
Merge pull request #4848 from dmytr/zio-instrumentation
bantonsson Mar 31, 2023
b102511
Merge pull request #5004 from DataDog/rgs/disable-ddprof
bantonsson Mar 31, 2023
7461361
Revert "disable datadog profiler by default"
richardstartin Mar 31, 2023
0a74997
Parallelize test jobs in CI (#4831)
smola Mar 31, 2023
dd79ce0
Merge pull request #5006 from DataDog/revert-5004-rgs/disable-ddprof
richardstartin Mar 31, 2023
5dc5f70
Fix for PlayFramework split routing
ygree Mar 29, 2023
efa6463
Add a cache for route paths
ygree Mar 29, 2023
cb7af5f
Add a smoke tests for Play split routes
ygree Mar 31, 2023
206399e
Adjust resourceName for new test that got added for CompletionStage s…
theJC Apr 3, 2023
fb03301
Add IAST propagation for java.net.URI (#4989)
manuel-alvarez-alvarez Apr 3, 2023
c7025a0
Merge pull request #4996 from DataDog/glopes/common-iast
cataphract Apr 3, 2023
541d251
Guard against potential NPE when searching bundle wiring during shutd…
mcculls Apr 3, 2023
68a05ad
Add support for 128-bit TraceId (6to7) (#4918)
PerfectSlayer Apr 3, 2023
f38120d
byte-buddy 1.14.3 + asm 9.5 (#5011)
mcculls Apr 3, 2023
993e196
Implement embedded git metadata extraction (#4951)
nikita-tkachenko-datadog Apr 3, 2023
6e8bc56
Provide peer.hostname on jedis spans
amarziali Apr 3, 2023
e289059
Merge pull request #5008 from theJC/fixFlakeyGraphQLVxForkedTest
bantonsson Apr 3, 2023
e4d7249
Create ShedLockedTask after creating shedlock table (avoids potential…
mcculls Apr 3, 2023
412db16
Merge pull request #4991 from DataDog/ygree/play-split-routing-fix
ygree Apr 3, 2023
1ce628d
Merge pull request #5013 from DataDog/andrea.marziali/jedis-peer-info
amarziali Apr 3, 2023
4339870
Refactor context evaluation & ProbeDetails
jpbempel Mar 31, 2023
525b574
Fix Couchbase client race condition (#4972)
smola Apr 4, 2023
eb14cff
move probe location build after instrumentation
jpbempel Apr 4, 2023
a935552
Remove -PskipBuildSrcTest (#5020)
smola Apr 4, 2023
764af3c
Remove SnapshotSummaryBuilder
jpbempel Apr 4, 2023
ed55440
Restore public DDTraceId class API (#5021)
PerfectSlayer Apr 4, 2023
3422034
fix unit test for jdk17
jpbempel Apr 4, 2023
ecc03e5
Merge pull request #5016 from DataDog/jpbempel/probedetails-refacto
jpbempel Apr 4, 2023
7966907
Protect calls to ProfilingContextIntegration in ScopeStack (#5022)
mcculls Apr 4, 2023
09d9a76
feat(otel): Add TRACE_OTEL_ENABLED flag for zero touch configuration …
PerfectSlayer Apr 4, 2023
5899f96
[6to7] Add support for 128-bit TraceId logging (#4938)
PerfectSlayer Apr 4, 2023
d877d1e
Upgrade WAF rules to v1.6.0 (#5025)
smola Apr 4, 2023
e623892
Remove stray println from RESTEasy IAST instrumentation (#5029)
smola Apr 4, 2023
1599e3b
feat: Add Windows support to call-site-instrumentation plugin (#5012)
PerfectSlayer Apr 5, 2023
0ded3d4
Add IAST propagation for org.apache.commons.codec.binary.Base64 (#4994)
manuel-alvarez-alvarez Apr 5, 2023
ea674a8
[6to7] Add malformed_tid and inconsistent_tid decoding error support …
PerfectSlayer Apr 5, 2023
5d94325
bump jplib to 0.30.0
richardstartin Apr 5, 2023
4ad726b
Merge pull request #5033 from DataDog/rgs/bump-jplib-0.30.0
richardstartin Apr 5, 2023
affcb17
lettuce: surface remote host and db index information
amarziali Apr 5, 2023
d4cda61
Add iast_enabled to StatusLogger (if enabled) (#5027)
smola Apr 5, 2023
8019600
Add USM instrumentation (#4813)
Yumasi Apr 5, 2023
1a1b792
Merge pull request #5035 from DataDog/andrea.marziali/lettuce-peer-ho…
amarziali Apr 6, 2023
9eea387
Remove SummaryBuilder interface
jpbempel Apr 4, 2023
ea72917
Remove all deprecation warnings in preparation for gradle 8
bantonsson Apr 6, 2023
45cc7ae
Merge pull request #5032 from DataDog/ban/gradle-8-prep
bantonsson Apr 6, 2023
66075c3
CI Visibility Maven instrumentation (#4934)
nikita-tkachenko-datadog Apr 6, 2023
c017221
redisson: surface peer connection tags
amarziali Apr 6, 2023
38aeb61
add remote peer info for rediscala
amarziali Apr 6, 2023
134e8e6
Merge pull request #5039 from DataDog/andrea.marziali/redisson-peer
amarziali Apr 7, 2023
889c333
Add IAST support to hibernate queries (#5023)
manuel-alvarez-alvarez Apr 10, 2023
8b33c93
Merge pull request #5030 from DataDog/jpbempel/refacto-log-template-b…
jpbempel Apr 10, 2023
8702030
Refactoring handling evaluation errors
jpbempel Apr 4, 2023
fcb4fe0
[OTel] Improve OpenTelemetry instrumentation (#5037)
PerfectSlayer Apr 11, 2023
050ebc2
Restore support for matching custom 'dd.trace.executors' (#5044)
mcculls Apr 11, 2023
9b884b8
Merge pull request #5045 from DataDog/jpbempel/refacto-error-handling
jpbempel Apr 11, 2023
67f6d7f
Update Muzzle plugin for gradle 8
bantonsson Apr 11, 2023
eb0d191
Merge pull request #5046 from DataDog/ban/update-muzzle-gradle-8
bantonsson Apr 11, 2023
5faaf84
Add instrumentation for Span decoration probes
jpbempel Apr 4, 2023
aac4c0d
bootstrap: remove parseAsSystemProperties (#5050)
Yumasi Apr 12, 2023
849a199
Merge pull request #5038 from DataDog/andrea.marziali/rediscala-peer-…
amarziali Apr 12, 2023
f4eb385
Fix null active/root span
jpbempel Apr 12, 2023
e5d3597
Merge pull request #5048 from DataDog/jpbempel/span-decoration-instru…
jpbempel Apr 12, 2023
bdd5324
Rename ProbeDetails and move out Snapshot
jpbempel Apr 12, 2023
4125a56
IAST: support webflux
cataphract Mar 20, 2023
04afa75
remove SnapshoProvider
jpbempel Apr 12, 2023
99e8201
Merge pull request #5053 from DataDog/jpbempel/refacto-probedetails
jpbempel Apr 12, 2023
f1a263e
Remove commit method in Snapshot
jpbempel Apr 12, 2023
e0f767e
move resolveEvaluateAt method to CapturedContext
jpbempel Apr 12, 2023
fbc76f5
Remove parametric testTransformations
jpbempel Apr 12, 2023
c47397d
Merge pull request #4942 from DataDog/glopes/iast-spring-webflux
cataphract Apr 12, 2023
0baef70
Merge pull request #5059 from DataDog/jpbempel/snapshot-commit
jpbempel Apr 12, 2023
f36b046
Merge pull request #5060 from DataDog/jpbempel/refacto-resolve-evalua…
jpbempel Apr 12, 2023
01b5ef7
Merge pull request #5054 from DataDog/jpbempel/remove-test-transforma…
jpbempel Apr 12, 2023
08b9131
Remove abandoned test sets plugin for gradle 8
bantonsson Apr 13, 2023
4525c94
Remove gradle's --warning-mode=fail (#5057)
smola Apr 13, 2023
c1e4828
Merge pull request #5056 from DataDog/ban/remove-test-sets
bantonsson Apr 13, 2023
d38c4b3
Add inactive state for IAST (#5055)
smola Apr 13, 2023
612fbd7
Fix Git pack-file parsing issue (#5062)
nikita-tkachenko-datadog Apr 13, 2023
193662c
Upgrade to libsqreen 6.2.0
cataphract Apr 13, 2023
592b3ad
Avoid duplicate elements in TaintedMap (#5065)
smola Apr 14, 2023
21e52e5
Fix enablement of the ddprof profiler in standalone mode (#5067)
jbachorik Apr 14, 2023
5e428a8
IAST support for akka-http
cataphract Apr 1, 2023
c50ecf8
Merge pull request #5066 from DataDog/glopes/upg-libsqreen-6.2.0
cataphract Apr 14, 2023
74e4658
Try enabling smoke test for the latest OpenJ9 (#5069)
jbachorik Apr 14, 2023
d87e9c3
Merge pull request #5019 from DataDog/glopes/iast-akka-http
cataphract Apr 14, 2023
5e09c0c
remove hand-crafted JSON payload and remove double quotes from profil…
richardstartin Apr 14, 2023
694f405
Merge pull request #5071 from DataDog/rgs/profile-uploader-tags
richardstartin Apr 14, 2023
a772f63
Avoid a second Python install (and build) in parametric-tests (#5068)
smola Apr 17, 2023
64534fb
Do not automatically enable ddprof for J9 JDK 11/17 (#5072)
jbachorik Apr 17, 2023
08f2e2a
merge guance
songlonqi-java Apr 19, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
665 changes: 438 additions & 227 deletions .circleci/config.yml

Large diffs are not rendered by default.

8 changes: 5 additions & 3 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,18 @@ dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentat
dd-java-agent/agent-bootstrap/src/main/java11/datadog/trace/bootstrap/instrumentation/jfr/ @DataDog/profiling-java
dd-smoke-tests/profiling-integration-tests/ @DataDog/profiling-java

# @ValentinZakharov is not in the @DataDog org :( so add him here
dd-java-agent/appsec/ @DataDog/appsec-java @ValentinZakharov
dd-java-agent/appsec/ @DataDog/appsec-java

# @DataDog/ci-app-libraries-java
internal-api/src/main/java/datadog/trace/api/civisibility/ @DataDog/ci-app-libraries-java
dd-trace-core/src/main/java/datadog/trace/civisibility/ @DataDog/ci-app-libraries-java
dd-java-agent/agent-ci-visibility/ @DataDog/ci-app-libraries-java
dd-java-agent/instrumentation/junit-4.10/ @DataDog/ci-app-libraries-java
dd-java-agent/instrumentation/junit-5.3/ @DataDog/ci-app-libraries-java
dd-java-agent/instrumentation/testng-6.4/ @DataDog/ci-app-libraries-java
dd-java-agent/instrumentation/testng/ @DataDog/ci-app-libraries-java
dd-java-agent/instrumentation/gradle/ @DataDog/ci-app-libraries-java
dd-java-agent/instrumentation/maven-3.2.1/ @DataDog/ci-app-libraries-java
dd-smoke-tests/gradle/ @DataDog/ci-app-libraries-java

# @DataDog/debugger-java (Live Debugger)
dd-java-agent/agent-debugger/ @DataDog/debugger-java
Expand Down
2 changes: 1 addition & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ tracer-base-image-release:
rules:
- if: '$POPULATE_CACHE'
when: never
- if: '$CI_COMMIT_BRANCH == "master" && $CI_COMMIT_TAG =~ /^v1\..*/'
- if: '$CI_COMMIT_TAG =~ /^v1\..*/'
when: on_success
dependencies:
- build
Expand Down
31 changes: 21 additions & 10 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,16 @@ buildscript {
}

plugins {
id 'com.github.ben-manes.versions' version '0.27.0'

id "com.diffplug.spotless" version "6.11.0"
id 'com.github.spotbugs' version '4.6.0'
id "de.thetaphi.forbiddenapis" version "3.2"
id 'com.github.spotbugs' version '5.0.14'
id "de.thetaphi.forbiddenapis" version "3.5.1"

id 'org.unbroken-dome.test-sets' version '4.0.0'
id 'pl.allegro.tech.build.axion-release' version '1.14.4'
id 'io.github.gradle-nexus.publish-plugin' version '1.0.0'
id 'io.github.gradle-nexus.publish-plugin' version '1.3.0'

id "com.github.johnrengelman.shadow" version "7.1.2" apply false
id "me.champeau.jmh" version "0.6.5" apply false
id 'org.gradle.playframework' version '0.12' apply false
id "me.champeau.jmh" version "0.7.0" apply false
id 'org.gradle.playframework' version '0.13' apply false
id 'info.solidsoft.pitest' version '1.9.11' apply false
}

Expand Down Expand Up @@ -148,11 +145,25 @@ allprojects {
}
}

allprojects { project ->
project.ext {
activePartition = true
}
final boolean shouldUseTaskPartitions = project.rootProject.hasProperty("taskPartitionCount") && project.rootProject.hasProperty("taskPartition")
if (shouldUseTaskPartitions) {
final int taskPartitionCount = project.rootProject.property("taskPartitionCount") as int
final int taskPartition = project.rootProject.property("taskPartition") as int
final currentTaskPartition = project.path.hashCode() % taskPartitionCount
project.setProperty("activePartition", currentTaskPartition == taskPartition)
}
}


def testAggregate(String taskName, includePrefixes, excludePrefixes) {
tasks.register(taskName) { aggTest ->
subprojects { subproject ->
println(subproject.path)
if (includePrefixes.any { subproject.path.startsWith(it) } && !excludePrefixes.any { subproject.path.startsWith(it) }) {
if (subproject.property("activePartition") && includePrefixes.any { subproject.path.startsWith(it) } && !excludePrefixes.any { subproject.path.startsWith(it) }) {
println(subproject.path)
def testTask = subproject.tasks.findByName("test")
if (testTask != null) {
aggTest.dependsOn(testTask)
Expand Down
6 changes: 3 additions & 3 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@ dependencies {
implementation(gradleApi())
implementation(localGroovy())

implementation("net.bytebuddy", "byte-buddy-gradle-plugin", "1.12.22")
implementation("net.bytebuddy", "byte-buddy-gradle-plugin", "1.14.3")

implementation("org.eclipse.aether", "aether-connector-basic", "1.1.0")
implementation("org.eclipse.aether", "aether-transport-http", "1.1.0")
implementation("org.apache.maven", "maven-aether-provider", "3.3.9")

implementation("com.google.guava", "guava", "20.0")
implementation("org.ow2.asm", "asm", "9.0")
implementation("org.ow2.asm", "asm-tree", "9.0")
implementation("org.ow2.asm", "asm", "9.5")
implementation("org.ow2.asm", "asm-tree", "9.5")

testImplementation("org.spockframework", "spock-core", "2.0-groovy-3.0")
testImplementation("org.codehaus.groovy", "groovy-all", "3.0.10")
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/call-site-instrumentation-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -92,5 +92,5 @@ tasks.build {

tasks.test {
useJUnitPlatform()
enabled = !project.hasProperty("skipBuildSrcTest")
enabled = project.hasProperty("runBuildSrcTests")
}
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,11 @@ private static void writeStackOperations(final AdviceSpecification advice, final
}
String mode = "COPY";
if (allArgsSpec != null) {
mode = advice instanceof AfterSpecification ? "PREPEND_ARRAY" : "APPEND_ARRAY";
if (advice instanceof AfterSpecification) {
mode = advice.isConstructor() ? "PREPEND_ARRAY_CTOR" : "PREPEND_ARRAY";
} else {
mode = "APPEND_ARRAY";
}
}
dupMethod.addArgument(
new FieldAccessExpr()
Expand Down Expand Up @@ -392,15 +396,6 @@ private static void writeAdviceMethodCall(
.addArgument(new StringLiteralExpr(method.getMethodType().getDescriptor()))
.addArgument(new BooleanLiteralExpr(false));
body.addStatement(invokeStatic);
if (advice instanceof AfterSpecification && advice.isConstructor()) {
// constructors make a DUP before the <init> that we have to discard
final MethodCallExpr pop =
new MethodCallExpr()
.setScope(new NameExpr("handler"))
.setName("instruction")
.addArgument(opCode("POP"));
body.addAndGetStatement(pop);
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,10 @@ private void validateReturnSpecCompatibility(
withParameter(
ReturnSpecification.class,
(i, spec) -> {
final Type rType = pointcut.getMethodType().getReturnType();
final Type rType =
pointcut.isConstructor()
? pointcut.getOwner()
: pointcut.getMethodType().getReturnType();
final Type advice = adviceArgumentTypes[i];
validateCompatibility(
context, rType, advice, ErrorCode.ADVICE_METHOD_PARAM_RETURN_NOT_COMPATIBLE, i);
Expand All @@ -185,7 +188,7 @@ private void validateThisSpecCompatibility(
});
}

private void validateAdviceReturnTypeCompatibility(final ValidationContext context) {
protected void validateAdviceReturnTypeCompatibility(final ValidationContext context) {
if (!advice.isVoidReturn()) {
final Type pointcutType =
pointcut.isConstructor()
Expand Down Expand Up @@ -560,16 +563,16 @@ protected void validateAdvice(@Nonnull final ValidationContext context) {
if (advice.isVoidReturn()) {
context.addError(ErrorCode.ADVICE_AFTER_SHOULD_NOT_RETURN_VOID);
}
if (!isStaticPointcut() && !includeThis()) {
context.addError(ErrorCode.ADVICE_AFTER_SHOULD_HAVE_THIS);
if (findReturn() == null) {
context.addError(ErrorCode.ADVICE_AFTER_SHOULD_HAVE_RETURN);
}
if (!pointcut.isConstructor()) {
if (findReturn() == null) {
context.addError(ErrorCode.ADVICE_AFTER_SHOULD_HAVE_RETURN);
if (!isStaticPointcut() && !includeThis()) {
context.addError(ErrorCode.ADVICE_AFTER_SHOULD_HAVE_THIS);
}
} else {
if (findReturn() != null) {
context.addError(ErrorCode.ADVICE_AFTER_CONSTRUCTOR_SHOULD_NOT_HAVE_RETURN);
if (findAllArguments() == null) {
context.addError(ErrorCode.ADVICE_AFTER_CONSTRUCTOR_ALL_ARGUMENTS);
}
}
super.validateAdvice(context);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,9 @@ public void apply(
private void addTelemetry(final Configuration configuration, final CallSiteResult result)
throws Exception {
final Type callSiteClass = result.getSpecification().getClazz();
final String callSiteFile = callSiteClass.getClassName().replaceAll("\\.", File.separator);
final String fileSeparatorPattern = File.separator.equals("\\") ? "\\\\" : File.separator;
final String callSiteFile =
callSiteClass.getClassName().replaceAll("\\.", fileSeparatorPattern);
final TypeResolver resolver = getTypeResolver(configuration);

// new call site with telemetry embedded
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -352,14 +352,14 @@ public String apply(final Object[] objects) {
ADVICE_AFTER_SHOULD_HAVE_RETURN {
@Override
public String apply(final Object[] objects) {
return "After advice last parameter should be annotated with @Return for non constructors";
return "After advice last parameter should be annotated with @Return";
}
},

ADVICE_AFTER_CONSTRUCTOR_SHOULD_NOT_HAVE_RETURN {
ADVICE_AFTER_CONSTRUCTOR_ALL_ARGUMENTS {
@Override
public String apply(final Object[] objects) {
return "After advice should not be annotated with @Return for constructors";
return "After advice in constructors should use @AllArguments";
}
},

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,9 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {

@CallSite
class AfterAdvice {
@CallSite.After('void java.net.URL.<init>(java.lang.String)')
static URL after(@CallSite.This final URL url, @CallSite.Argument final String spec) {
return url;
@CallSite.After('java.lang.String java.lang.String.concat(java.lang.String)')
static String after(@CallSite.This final String self, @CallSite.Argument final String param, @CallSite.Return final String result) {
return result
}
}

Expand All @@ -136,16 +136,57 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
interfaces.containsAll(['CallSiteAdvice', 'Pointcut', 'InvokeAdvice', 'HasFlags', 'HasHelpers'])
final methods = groupMethods(adviceClass)
getStatements(methods['pointcut']) == ['return this;']
getStatements(methods['type']) == ['return "java/lang/String";']
getStatements(methods['method']) == ['return "concat";']
getStatements(methods['descriptor']) == ['return "(Ljava/lang/String;)Ljava/lang/String;";']
getStatements(methods['helperClassNames']) == ['return new String[] { "' + AfterAdvice.name + '" };']
getStatements(methods['flags']) == ['return COMPUTE_MAX_STACK;']
getStatements(methods['apply']) == [
'handler.dupInvoke(owner, descriptor, StackDupMode.COPY);',
'handler.method(opcode, owner, name, descriptor, isInterface);',
'handler.method(Opcodes.INVOKESTATIC, "datadog/trace/plugin/csi/impl/AdviceGeneratorTest$AfterAdvice", "after", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", false);',
]
}

@CallSite
class AfterAdviceCtor {
@CallSite.After('void java.net.URL.<init>(java.lang.String)')
static URL after(@CallSite.AllArguments final Object[] args, @CallSite.Return final URL url) {
return url
}
}

void 'test after advice ctor'() {
setup:
final spec = buildClassSpecification(AfterAdviceCtor)
final generator = buildAdviceGenerator(buildDir)

when:
final result = generator.generate(spec)

then:
assertNoErrors(result)
final advice = findAdvice(result, 'after')
assertNoErrors(advice)
final javaFile = new JavaParser().parse(advice.file).getResult().get()
assert javaFile.parsed == Node.Parsedness.PARSED
final packageDcl = javaFile.getPackageDeclaration().get()
packageDcl.name.asString() == AfterAdvice.package.name
final adviceClass = javaFile.getType(0)
adviceClass.name.asString().endsWith(AfterAdviceCtor.simpleName + 'After')
final interfaces = getImplementedTypes(adviceClass)
interfaces.containsAll(['CallSiteAdvice', 'Pointcut', 'InvokeAdvice', 'HasFlags', 'HasHelpers'])
final methods = groupMethods(adviceClass)
getStatements(methods['pointcut']) == ['return this;']
getStatements(methods['type']) == ['return "java/net/URL";']
getStatements(methods['method']) == ['return "<init>";']
getStatements(methods['descriptor']) == ['return "(Ljava/lang/String;)V";']
getStatements(methods['helperClassNames']) == ['return new String[] { "' + AfterAdvice.name + '" };']
getStatements(methods['helperClassNames']) == ['return new String[] { "' + AfterAdviceCtor.name + '" };']
getStatements(methods['flags']) == ['return COMPUTE_MAX_STACK;']
getStatements(methods['apply']) == [
'handler.dupInvoke(owner, descriptor, StackDupMode.COPY);',
'handler.dupParameters(descriptor, StackDupMode.PREPEND_ARRAY_CTOR);',
'handler.method(opcode, owner, name, descriptor, isInterface);',
'handler.method(Opcodes.INVOKESTATIC, "datadog/trace/plugin/csi/impl/AdviceGeneratorTest$AfterAdvice", "after", "(Ljava/net/URL;Ljava/lang/String;)Ljava/net/URL;", false);',
'handler.instruction(Opcodes.POP);'
'handler.method(Opcodes.INVOKESTATIC, "datadog/trace/plugin/csi/impl/AdviceGeneratorTest$AfterAdviceCtor", "after", "([Ljava/lang/Object;Ljava/net/URL;)Ljava/net/URL;", false);',
]
}

Expand Down Expand Up @@ -374,9 +415,9 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {

@CallSite(minJavaVersion = 9)
class MinJavaVersionAdvice {
@CallSite.After('void java.net.URL.<init>(java.lang.String)')
static URL after(@CallSite.This final URL url, @CallSite.Argument final String spec) {
return url;
@CallSite.After('java.lang.String java.lang.String.concat(java.lang.String)')
static String after(@CallSite.This final String self, @CallSite.Argument final String param, @CallSite.Return final String result) {
return result
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ abstract class BaseCsiPluginTest extends Specification {

protected static File fetchClass(final Class<?> clazz) {
final folder = Paths.get(clazz.getResource('/').toURI()).resolve('../../')
final classFile = clazz.getName().replaceAll('\\.', File.separator) + '.class'
final fileSeparatorPattern = File.separator == "\\" ? "\\\\" : File.separator
final classFile = clazz.getName().replaceAll('\\.', fileSeparatorPattern) + '.class'
final groovy = folder.resolve('groovy/test').resolve(classFile)
if (Files.exists(groovy)) {
return groovy.toFile()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@ class IastExtensionTest extends BaseCsiPluginTest {

then:
final String callSiteWithTelemetryClass = IastExtensionCallSite.name + IastExtension.WITH_TELEMETRY_SUFFIX
final resultFile = targetFolder.resolve("${callSiteWithTelemetryClass.replaceAll('\\.', File.separator)}.java")
final fileSeparatorPattern = File.separator == "\\" ? "\\\\" : File.separator
final resultFile = targetFolder.resolve("${callSiteWithTelemetryClass.replaceAll('\\.', fileSeparatorPattern)}.java")
assert Files.exists(resultFile)
final callSiteType = parse(resultFile.toFile())
validateMethod(callSiteType, 'afterGetHeader') { List<String> statements ->
Expand All @@ -101,9 +102,9 @@ class IastExtensionTest extends BaseCsiPluginTest {
}
validateMethod(adviceType, 'apply') { List<String> statements ->
assert statements == [
'''if (this.telemetry) {
IastTelemetryCollector.add(IastMetric.INSTRUMENTED_SOURCE, 1, SourceTypes.REQUEST_HEADER_VALUE);
}''',
'if (this.telemetry) {' + System.lineSeparator() +
' IastTelemetryCollector.add(IastMetric.INSTRUMENTED_SOURCE, 1, SourceTypes.REQUEST_HEADER_VALUE);' + System.lineSeparator() +
'}',
'handler.dupInvoke(owner, descriptor, StackDupMode.COPY);',
'handler.method(opcode, owner, name, descriptor, isInterface);',
'handler.method(Opcodes.INVOKESTATIC, this.callSite, "afterGetHeader", "(Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", false);'
Expand All @@ -118,10 +119,10 @@ class IastExtensionTest extends BaseCsiPluginTest {
validateMethod(adviceType, 'enableTelemetry') { List<String> statements ->
assert statements == [
'this.telemetry = true;',
"""if (enableRuntime) {
this.callSite = "${type.internalName}WithTelemetry";
this.helperClassNames = new String[] { "${type.className}WithTelemetry" };
}""",
'if (enableRuntime) {' + System.lineSeparator() +
' this.callSite = "' + type.internalName + 'WithTelemetry";' + System.lineSeparator() +
' this.helperClassNames = new String[] { "' + type.className + 'WithTelemetry" };' + System.lineSeparator() +
'}',
]
}
}
Expand Down
Loading