Skip to content

A playground for testing out different cloud services with regards to crashes and exceptions.

License

Notifications You must be signed in to change notification settings

mattleibow/CloudyCrashReporting

Repository files navigation

Cloudy Crash Reporting

A playground for testing out different cloud services with regards to crashes and exceptions.

Overview

Below is a matrix of the cloud services, SDK features and platforms. Clicking the cloud service name will take you to a more detailed section of the service. I have also attached notes to various parts for more information.

NOTE: The order of the services are alphabetical and are not a ranking or suggestion of preferred cloud provider.

Cloud Service Android iOS macOS Windows Tizen .NET MAUI .NET Ex Native Ex
DataDog [5] [6]
Dynatrace
Firebase Crashlytics [4] [7] [3]
New Relic [1]
Raygun [8] [9]
Sentry.io [2]
Visual Studio App Center

Key
✅ → fully supported
➗ → partially supported, see notes
❌ → not supported at all
➖ → unknown / yet to be determined

Notes

  1. [New Relic] Android native crash reporting is still in development and actually is not enabled for .NET MAUI Android apps: https://docs.newrelic.com/docs/mobile-monitoring/mobile-monitoring-ui/crashes/investigate-mobile-app-crash-report/#android-native-reporting
  2. [Sentry.io] There is no explicit native Tizen SDK for Sentry, however the .NET SDK does have support for all .NET frameworks, which includes the Tizen .NET SDK.
  3. [Firebase Crashlytics] There is no support for capturing .NET exceptions because the SDK is purely native. However, since .NET exceptions will crash the app, the crash is still reported using the native stack traces - which may include the .NET stack trace and potentially information from the .NET runtime.
  4. [Firebase Crashlytics] The Firebase SDK from Google supports macOS and Mac Catalyst, but the Xamarin bindings currently do not expose this: xamarin/GoogleApisForiOSComponents#516
  5. [DataDog] There are no .NET bindings for .NET mobile frameworks, so I am unable to determine the level of support for .NET applications, however, based on other SDKs that use .NET bindings there should be some level of usability. For example, Firebase Crashlytics is only a binding but can report some .NET exceptions.
  6. [DataDog] There is no .NET bindings for .NET mobile frameworks, so I am unable to determine the level of support for native exceptions. However, the docs and SDK do indicate that this is supported.
  7. [Firebase Crashlytics] There is no official .NET MAUI SDK, but there is a community plugin for Android and iOS: https://github.com/TobiasBuchholz/Plugin.Firebase
  8. [Raygun] There is no explicit native Tizen SDK, however the .NET SDK does have support for all .NET frameworks, which includes the Tizen .NET SDK.
  9. [Raygun] The docs state native crash reporting and there is some for Android, however iOS does does not seem to do anything: MindscapeHQ/raygun4maui#13

Types of Crashes & Exceptions

In a mobile or desktop app, there are a few types of issues that can cause catastrophic failure:

  • Native code failures/exceptions
  • Unhandled exceptions in .NET/managed code
  • Exception reporting for handled exceptions

Cloud Services

DataDog

SUPPORT: Currently there is no official or community bindings for the SDKs, so I opened issues to find out.
Android: DataDog/dd-sdk-android#1811 iOS: DataDog/dd-sdk-ios#1617

Links:

Pros:

Cons:

  • No .NET mobile bindings so not really usable in a .NET MAUI app - or any .NET mobile app

Dynatrace

Links:

Pros:

  • Native crash reporting for Android and iOS

Cons:

  • Console setup is simple, but the NuGets for the app does not support being used as a transitive dependency and also generates files in the project tree which will end up being checked into source control as well as break incremental builds. Basically, a bit hard to use.
  • Does not collect exceptions from unobserved Tasks
  • Does not collect crashes from background threads on Android
  • Web console is not the greatest

Firebase Crashlytics

BUG: Currently iOS is not working on .NET 8: xamarin/GoogleApisForiOSComponents#643

Links:

Pros:

Cons:

New Relic

Links:

Pros:

Cons:

  • No support for desktop (macOS and Windows)
  • Does not collect exceptions from unobserved Tasks
  • Does not collect crashes from background threads on Android

Raygun

Links:

Pros:

Cons:

Sentry.io

Links:

Pros:

Cons:

  • Profiling is not yet available for .NET MAUI
  • Does not have advanced user analytics, like new vs returning users

About

A playground for testing out different cloud services with regards to crashes and exceptions.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages