diff --git a/dd-trace-core/build.gradle b/dd-trace-core/build.gradle index 3c64189161c..d415949e629 100644 --- a/dd-trace-core/build.gradle +++ b/dd-trace-core/build.gradle @@ -91,7 +91,7 @@ dependencies { testImplementation project(':remote-config:remote-config-core') testImplementation group: 'org.msgpack', name: 'msgpack-core', version: '0.8.20' testImplementation group: 'org.msgpack', name: 'jackson-dataformat-msgpack', version: '0.8.20' - testImplementation group: 'org.openjdk.jol', name: 'jol-core', version: '0.16' + testImplementation group: 'org.openjdk.jol', name: 'jol-core', version: '0.17' testImplementation group: 'commons-codec', name: 'commons-codec', version: '1.3' testImplementation group: 'com.amazonaws', name: 'aws-lambda-java-events', version:'3.11.0' testImplementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.14.0' diff --git a/dd-trace-core/src/test/groovy/datadog/trace/common/metrics/FootprintForkedTest.groovy b/dd-trace-core/src/test/groovy/datadog/trace/common/metrics/FootprintForkedTest.groovy index 1ade3d9aaa3..af59f8aa289 100644 --- a/dd-trace-core/src/test/groovy/datadog/trace/common/metrics/FootprintForkedTest.groovy +++ b/dd-trace-core/src/test/groovy/datadog/trace/common/metrics/FootprintForkedTest.groovy @@ -25,8 +25,9 @@ class FootprintForkedTest extends DDSpecification { setup: CountDownLatch latch = new CountDownLatch(1) ValidatingSink sink = new ValidatingSink(latch) - DDAgentFeaturesDiscovery features = Mock(DDAgentFeaturesDiscovery) - features.supportsMetrics() >> true + DDAgentFeaturesDiscovery features = Stub(DDAgentFeaturesDiscovery) { + it.supportsMetrics() >> true + } ConflatingMetricsAggregator aggregator = new ConflatingMetricsAggregator( new WellKnownTags("runtimeid","hostname", "env", "service", "version","language"), [].toSet() as Set, @@ -35,8 +36,10 @@ class FootprintForkedTest extends DDSpecification { 1000, 1000, 100, - SECONDS) - long baseline = footprint(aggregator) + SECONDS + ) + // Removing the 'features' as it's a mock, and mocks are heavyweight, e.g. around 22MiB + def baseline = footprint(aggregator, features) aggregator.start() when: "lots of traces are published" @@ -70,7 +73,8 @@ class FootprintForkedTest extends DDSpecification { assert latch.await(30, SECONDS) then: - footprint(aggregator) - baseline <= 10 * 1024 * 1024 + def layout = footprint(aggregator, features) + layout.totalSize() - baseline.totalSize() <= 10 * 1024 * 1024 cleanup: aggregator.close() @@ -134,9 +138,14 @@ class FootprintForkedTest extends DDSpecification { } - static long footprint(Object o) { - GraphLayout layout = GraphLayout.parseInstance(o) - System.err.println(layout.toFootprint()) - return layout.totalSize() + static GraphLayout footprint(Object root, Object... excludedRootFieldInstance) { + GraphLayout layout = GraphLayout.parseInstance(root) + + excludedRootFieldInstance.each { + layout = layout.subtract(GraphLayout.parseInstance(it)) + } + + println layout.toFootprint() + return layout } }