DataDog / dd-sdk-android

Datadog SDK for Android (Compatible with Kotlin and Java)
Apache License 2.0
141 stars 57 forks source link

RUM-4260 Make CoreTracer code Java 7 compatible #2051

Closed mariusc83 closed 1 month ago

mariusc83 commented 1 month ago

What does this PR do?

In this PR we are cleaning up the imported Java code for the CoreTracer and make it Java 7 compatible in order to not require desugaring on Android 23 and below.

The are several steps in achieving this:

Have in mind that maybe some more cleaning could be performed but I don't find this idea wise. What I could clean so far was code that I was really certain that it cannot affect the current functionality, it will not have any impact on the APM metrics and will not have repercussions later. We already went into trouble by removing the Injector which seemed not to be used for the moment and I just realized during this PR work that this will have a negative impact later.

Motivation

What inspired you to submit this pull request?

Additional Notes

I performed a Profiling by analyzing the CPU consumption and Memory consumption while using the new Otel code and I could not see any potential issue (spike).

Review checklist (to be filled by reviewers)

codecov-commenter commented 1 month ago

Codecov Report

Attention: Patch coverage is 34.22460% with 369 lines in your changes are missing coverage. Please review.

Project coverage is 66.82%. Comparing base (ad06c50) to head (da0a254). Report is 1 commits behind head on feature/otel-support.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## feature/otel-support #2051 +/- ## ======================================================== + Coverage 64.11% 66.82% +2.70% ======================================================== Files 759 734 -25 Lines 28307 27197 -1110 Branches 4753 4603 -150 ======================================================== + Hits 18148 18172 +24 + Misses 8926 7798 -1128 + Partials 1233 1227 -6 ``` | [Files](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2051?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | Coverage Δ | | |---|---|---| | [...ce/src/main/java/com/datadog/trace/api/Config.java](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2051?src=pr&el=tree&filepath=features%2Fdd-sdk-android-trace%2Fsrc%2Fmain%2Fjava%2Fcom%2Fdatadog%2Ftrace%2Fapi%2FConfig.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtdHJhY2Uvc3JjL21haW4vamF2YS9jb20vZGF0YWRvZy90cmFjZS9hcGkvQ29uZmlnLmphdmE=) | `59.00% <ø> (+12.62%)` | :arrow_up: | | [...main/java/com/datadog/trace/api/DynamicConfig.java](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2051?src=pr&el=tree&filepath=features%2Fdd-sdk-android-trace%2Fsrc%2Fmain%2Fjava%2Fcom%2Fdatadog%2Ftrace%2Fapi%2FDynamicConfig.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtdHJhY2Uvc3JjL21haW4vamF2YS9jb20vZGF0YWRvZy90cmFjZS9hcGkvRHluYW1pY0NvbmZpZy5qYXZh) | `55.75% <ø> (ø)` | | | [.../main/java/com/datadog/trace/api/EventTracker.java](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2051?src=pr&el=tree&filepath=features%2Fdd-sdk-android-trace%2Fsrc%2Fmain%2Fjava%2Fcom%2Fdatadog%2Ftrace%2Fapi%2FEventTracker.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtdHJhY2Uvc3JjL21haW4vamF2YS9jb20vZGF0YWRvZy90cmFjZS9hcGkvRXZlbnRUcmFja2VyLmphdmE=) | `0.00% <ø> (ø)` | | | [...src/main/java/com/datadog/trace/api/Functions.java](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2051?src=pr&el=tree&filepath=features%2Fdd-sdk-android-trace%2Fsrc%2Fmain%2Fjava%2Fcom%2Fdatadog%2Ftrace%2Fapi%2FFunctions.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtdHJhY2Uvc3JjL21haW4vamF2YS9jb20vZGF0YWRvZy90cmFjZS9hcGkvRnVuY3Rpb25zLmphdmE=) | `25.00% <ø> (+21.88%)` | :arrow_up: | | [.../main/java/com/datadog/trace/api/GlobalTracer.java](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2051?src=pr&el=tree&filepath=features%2Fdd-sdk-android-trace%2Fsrc%2Fmain%2Fjava%2Fcom%2Fdatadog%2Ftrace%2Fapi%2FGlobalTracer.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtdHJhY2Uvc3JjL21haW4vamF2YS9jb20vZGF0YWRvZy90cmFjZS9hcGkvR2xvYmFsVHJhY2VyLmphdmE=) | `0.00% <ø> (ø)` | | | [...ain/java/com/datadog/trace/api/cache/DDCaches.java](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2051?src=pr&el=tree&filepath=features%2Fdd-sdk-android-trace%2Fsrc%2Fmain%2Fjava%2Fcom%2Fdatadog%2Ftrace%2Fapi%2Fcache%2FDDCaches.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtdHJhY2Uvc3JjL21haW4vamF2YS9jb20vZGF0YWRvZy90cmFjZS9hcGkvY2FjaGUvRERDYWNoZXMuamF2YQ==) | `100.00% <ø> (+71.43%)` | :arrow_up: | | [...va/com/datadog/trace/api/cache/FixedSizeCache.java](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2051?src=pr&el=tree&filepath=features%2Fdd-sdk-android-trace%2Fsrc%2Fmain%2Fjava%2Fcom%2Fdatadog%2Ftrace%2Fapi%2Fcache%2FFixedSizeCache.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtdHJhY2Uvc3JjL21haW4vamF2YS9jb20vZGF0YWRvZy90cmFjZS9hcGkvY2FjaGUvRml4ZWRTaXplQ2FjaGUuamF2YQ==) | `44.44% <ø> (ø)` | | | [...va/com/datadog/trace/api/cache/RadixTreeCache.java](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2051?src=pr&el=tree&filepath=features%2Fdd-sdk-android-trace%2Fsrc%2Fmain%2Fjava%2Fcom%2Fdatadog%2Ftrace%2Fapi%2Fcache%2FRadixTreeCache.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtdHJhY2Uvc3JjL21haW4vamF2YS9jb20vZGF0YWRvZy90cmFjZS9hcGkvY2FjaGUvUmFkaXhUcmVlQ2FjaGUuamF2YQ==) | `0.00% <ø> (ø)` | | | [...race/api/experimental/DataStreamsCheckpointer.java](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2051?src=pr&el=tree&filepath=features%2Fdd-sdk-android-trace%2Fsrc%2Fmain%2Fjava%2Fcom%2Fdatadog%2Ftrace%2Fapi%2Fexperimental%2FDataStreamsCheckpointer.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtdHJhY2Uvc3JjL21haW4vamF2YS9jb20vZGF0YWRvZy90cmFjZS9hcGkvZXhwZXJpbWVudGFsL0RhdGFTdHJlYW1zQ2hlY2twb2ludGVyLmphdmE=) | `0.00% <ø> (ø)` | | | [...ce/api/normalize/AntPatternHttpPathNormalizer.java](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2051?src=pr&el=tree&filepath=features%2Fdd-sdk-android-trace%2Fsrc%2Fmain%2Fjava%2Fcom%2Fdatadog%2Ftrace%2Fapi%2Fnormalize%2FAntPatternHttpPathNormalizer.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtdHJhY2Uvc3JjL21haW4vamF2YS9jb20vZGF0YWRvZy90cmFjZS9hcGkvbm9ybWFsaXplL0FudFBhdHRlcm5IdHRwUGF0aE5vcm1hbGl6ZXIuamF2YQ==) | `0.00% <ø> (ø)` | | | ... and [26 more](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2051?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | | ... and [32 files with indirect coverage changes](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2051/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog)