From ea837e52042da34d34a29a0e5680dd73bfa55be5 Mon Sep 17 00:00:00 2001 From: Lucas Zimerman Fraulob Date: Sat, 15 May 2021 21:31:26 -0300 Subject: [PATCH] WIP performance --- Samples/Sample.Xamarin.Droid/MainActivity.cs | 1 + .../PageTracing/TrackedContentPage.droid.cs | 42 +++++++++++++++++++ .../Sentry.Xamarin.Forms.csproj | 20 ++++++--- 3 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 Src/Sentry.Xamarin.Forms/Internals/PageTracing/TrackedContentPage.droid.cs diff --git a/Samples/Sample.Xamarin.Droid/MainActivity.cs b/Samples/Sample.Xamarin.Droid/MainActivity.cs index 760a51d..c3e9d8a 100644 --- a/Samples/Sample.Xamarin.Droid/MainActivity.cs +++ b/Samples/Sample.Xamarin.Droid/MainActivity.cs @@ -18,6 +18,7 @@ protected override void OnCreate(Bundle savedInstanceState) SentryXamarin.Init(options => { options.Dsn = "https://5a193123a9b841bc8d8e42531e7242a1@o447951.ingest.sentry.io/5560112"; + options.TracesSampleRate = 1.0; options.AddXamarinFormsIntegration(); #if DEBUG options.Debug = true; diff --git a/Src/Sentry.Xamarin.Forms/Internals/PageTracing/TrackedContentPage.droid.cs b/Src/Sentry.Xamarin.Forms/Internals/PageTracing/TrackedContentPage.droid.cs new file mode 100644 index 0000000..1c37e71 --- /dev/null +++ b/Src/Sentry.Xamarin.Forms/Internals/PageTracing/TrackedContentPage.droid.cs @@ -0,0 +1,42 @@ +using Sentry.Internals.PageTracing; +using Sentry.Xamarin.Forms.Extensions; +using Xamarin.Forms; +using Xamarin.Forms.Platform.Android; + +[assembly: ExportRenderer(typeof(ContentPage), typeof(TrackedContentPage))] + +namespace Sentry.Internals.PageTracing +{ + internal class TrackedContentPage : PageRenderer + { + private static ITransaction pageLoading { get; set; } + + [System.Obsolete] + public TrackedContentPage() + { + + } + + public TrackedContentPage(Android.Content.Context context) : base(AttachTracingToContxt(context)) + { + } + + public static Android.Content.Context AttachTracingToContxt(global::Android.Content.Context context) + { + pageLoading = SentrySdk.StartTransaction(null, "page.loading"); + return context; + } + + protected override void OnElementChanged(ElementChangedEventArgs e) + { + pageLoading.Name = e.NewElement.GetPageType().Name; + base.OnElementChanged(e); + } + + protected override void OnAttachedToWindow() + { + base.OnAttachedToWindow(); + pageLoading.Finish(SpanStatus.Ok); + } + } +} diff --git a/Src/Sentry.Xamarin.Forms/Sentry.Xamarin.Forms.csproj b/Src/Sentry.Xamarin.Forms/Sentry.Xamarin.Forms.csproj index b6bbd10..477221c 100644 --- a/Src/Sentry.Xamarin.Forms/Sentry.Xamarin.Forms.csproj +++ b/Src/Sentry.Xamarin.Forms/Sentry.Xamarin.Forms.csproj @@ -1,17 +1,16 @@ - - + true - netstandard2.0; + netstandard2.0;monoandroid9.0; $(NoWarn);RS0017 true Sentry.Xamarin.Forms Sentry.Xamarin.Forms Sentry.Xamarin.Forms - Sentry + Sentry.Xamarin.Forms Official Sentry SDK for Xamarin Forms - Open-source error tracking that helps developers monitor and fix crashes in real time. <_WriteTelemetryProperties>false @@ -21,10 +20,19 @@ - + + + + + + - + + + + +