-
-
Notifications
You must be signed in to change notification settings - Fork 427
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
Feat/profiling/android #1973
Feat/profiling/android #1973
Conversation
* Added a transaction profiler (noOp on java sdk) that starts/stops android profiling when a transaction starts or is finished * Added a new envelope item type "profile", generated using android trace file. Its payload is a json represented by ProfilingTraceData * SentryExecutorService now uses a ScheduledExecutorService to allow the schedule() method * Added "profilingTracesDirPath" and "profilingTracesIntervalMillis" to SentryAndroidOptions * Added "profilingEnabled", "maxTraceFileSize" and "transactionProfiler" to SentryOptions * Added io.sentry.traces.profiling.enable to manifest options * Profiling is disabled by default * Profiling traces directory's content is deleted in the background when the options are initialized
* Added a transaction profiler (noOp on java sdk) that starts/stops android profiling when a transaction starts or is finished * Added a new envelope item type "profile", generated using android trace file. Its payload is a json represented by ProfilingTraceData * SentryExecutorService now uses a ScheduledExecutorService to allow the schedule() method * Added "profilingTracesDirPath" and "profilingTracesIntervalMillis" to SentryAndroidOptions * Added "profilingEnabled", "maxTraceFileSize" and "transactionProfiler" to SentryOptions * Added io.sentry.traces.profiling.enable to manifest options * Profiling is disabled by default * Profiling traces directory's content is deleted in the background when the options are initialized
added ser/deser logic to ProfilingTraceData (+ tests)
…t/profiling/android # Conflicts: # CHANGELOG.md # gradle.properties # sentry-android-core/src/test/java/io/sentry/android/core/AndroidTransactionProfilerTest.kt # sentry-android-core/src/test/java/io/sentry/android/core/SentryAndroidOptionsTest.kt # sentry/api/sentry.api # sentry/src/main/java/io/sentry/ProfilingTraceData.java # sentry/src/main/java/io/sentry/SentryEnvelopeItem.java # sentry/src/test/java/io/sentry/HubTest.kt # sentry/src/test/java/io/sentry/SentryClientTest.kt # sentry/src/test/java/io/sentry/SentryEnvelopeItemTest.kt # sentry/src/test/java/io/sentry/SentryTracerTest.kt
* Added a transaction profiler (noOp on java sdk) that starts/stops android profiling when a transaction starts or is finished * Added a new envelope item type "profile", generated using android trace file. Its payload is a json represented by ProfilingTraceData * SentryExecutorService now uses a ScheduledExecutorService to allow the schedule() method * Added "profilingTracesDirPath" and "profilingTracesIntervalMillis" to SentryAndroidOptions * Added "profilingEnabled", "maxTraceFileSize" and "transactionProfiler" to SentryOptions * Added io.sentry.traces.profiling.enable to manifest options * Profiling is disabled by default * Profiling traces directory's content is deleted in the background when the options are initialized
added ser/deser logic to ProfilingTraceData (+ tests)
* Added a transaction profiler (noOp on java sdk) that starts/stops android profiling when a transaction starts or is finished * Added a new envelope item type "profile", generated using android trace file. Its payload is a json represented by ProfilingTraceData * SentryExecutorService now uses a ScheduledExecutorService to allow the schedule() method * Added "profilingTracesDirPath" and "profilingTracesIntervalMillis" to SentryAndroidOptions * Added "profilingEnabled", "maxTraceFileSize" and "transactionProfiler" to SentryOptions * Added io.sentry.traces.profiling.enable to manifest options * Profiling is disabled by default * Profiling traces directory's content is deleted in the background when the options are initialized
…t/profiling/android # Conflicts: # CHANGELOG.md # gradle.properties # sentry-android-core/api/sentry-android-core.api # sentry-android-core/src/main/java/io/sentry/android/core/AndroidOptionsInitializer.java # sentry-android-core/src/main/java/io/sentry/android/core/IBuildInfoProvider.java # sentry-android-core/src/test/java/io/sentry/android/core/ActivityLifecycleIntegrationTest.kt # sentry-android-core/src/test/java/io/sentry/android/core/AndroidOptionsInitializerTest.kt # sentry-apollo/src/test/java/io/sentry/apollo/SentryApolloInterceptorTest.kt # sentry-spring/src/test/kotlin/io/sentry/spring/tracing/SentryTracingFilterTest.kt # sentry-spring/src/test/kotlin/io/sentry/spring/tracing/SentryTransactionAdviceTest.kt # sentry/api/sentry.api # sentry/src/main/java/io/sentry/Hub.java # sentry/src/main/java/io/sentry/HubAdapter.java # sentry/src/main/java/io/sentry/IHub.java # sentry/src/main/java/io/sentry/ISentryClient.java # sentry/src/main/java/io/sentry/NoOpHub.java # sentry/src/main/java/io/sentry/NoOpSentryClient.java # sentry/src/main/java/io/sentry/SentryClient.java # sentry/src/test/java/io/sentry/HubTest.kt # sentry/src/test/java/io/sentry/SentryClientTest.kt # sentry/src/test/java/io/sentry/SentryOptionsTest.kt # sentry/src/test/java/io/sentry/SentryTracerTest.kt
added ser/deser logic to ProfilingTraceData (+ tests) several updates for v6
Codecov Report
@@ Coverage Diff @@
## 6.x.x #1973 +/- ##
============================================
+ Coverage 75.46% 80.57% +5.11%
- Complexity 2248 3024 +776
============================================
Files 225 217 -8
Lines 8036 11215 +3179
Branches 851 1498 +647
============================================
+ Hits 6064 9036 +2972
- Misses 1562 1620 +58
- Partials 410 559 +149
Continue to review full report at Codecov.
|
Review not required to merge... 🤔 😈 |
@stefanosiano can you point us to which commits actually implement the serialization/deserialization of the new protocol? otherwise, it's hard to review. |
Such rules exist only in |
@marandaneto Sure, the json commit is c860b8c |
@marandaneto Can i merge it or should i wait for your review? |
@romtsn would you like to take this one? |
@marandaneto will do! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Few minor comments, but lgtm otherwise!
@@ -0,0 +1,16 @@ | |||
package io.sentry |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel like this file (and FileUtilsTest
) are in the wrong folder (see Sentry with capital "S"). I think we shouldn't have this Sentry folder in the first place ;)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is weird... there's no Sentry folder anywhere... maybe due to mac being case insensitive.
However, I fixed it with command line :/
CHANGELOG.md
Outdated
* Feat: Add Android profiling traces #1897 and its tests #1949 | ||
- All operations involving file reads for profiling were moved to the background #1959 | ||
|
||
## 5.6.2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you need to rebase/merge on 6.x.x again, this change should not be here (i.e. only the profiling changelog is relevant)
@@ -0,0 +1 @@ | |||
25b45607-d437-496f-9610-fb43a692dd7c |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This also should be gone from the PR I believe
📜 Description
Add profiling feature to Sentry v6
#skip-changelog