In that solution, because the current use case of this data is to track merge/unmerge behavior (which differs more by platform than framework), for wrapper SDKs which emit more than one sdk value, we chose to lump values by platform rather than by SDK. (So, for example, sentry.native.android.flutter gets subsumed by sentry.native and sentry.java.android.flutter gets subsumed by sentry.java rather than being grouped together under a single flutter umbrella.) This isn't the right choice for all metrics, though, so we might want to revisit that choice in the future, especially since ideally that information should be already being gathered by the platform value (though that value in and of itself has issues; see https://github.com/getsentry/sentry/issues/59075).
So:
Should we switch to normalizing by SDK instead?
Would that, in combination with the platform value, give us what we need for every metric? (This brings us back to the question from above, of if the platform value reliably matches the SDK value.)
Alternatively, should be make one choice or the other depending on the metric?
This is a follow-up to https://github.com/getsentry/sentry/issues/59501, which described the initial normalization problem, to keep track of the points raised there not handled by https://github.com/getsentry/sentry/pull/59504.
Remaining questions from https://github.com/getsentry/sentry/issues/59501:
platform: other
bucket? Which SDKs are those?other
, should we log to GCP, just we we can get a sense of what they are?sdk
value makes sense with theplatform
value?Question raised by https://github.com/getsentry/sentry/pull/59504:
In that solution, because the current use case of this data is to track merge/unmerge behavior (which differs more by platform than framework), for wrapper SDKs which emit more than one
sdk
value, we chose to lump values by platform rather than by SDK. (So, for example,sentry.native.android.flutter
gets subsumed bysentry.native
andsentry.java.android.flutter
gets subsumed bysentry.java
rather than being grouped together under a singleflutter
umbrella.) This isn't the right choice for all metrics, though, so we might want to revisit that choice in the future, especially since ideally that information should be already being gathered by theplatform
value (though that value in and of itself has issues; see https://github.com/getsentry/sentry/issues/59075).So:
platform
value, give us what we need for every metric? (This brings us back to the question from above, of if the platform value reliably matches the SDK value.)Full list of observed pre-normalization SDK tag values
``` _filtered _masbs _redacted _sensitive accesalabs avsentrytracker backtrace_uploader bustle-cf-sentry buzzvil bv-loader cf-sentry cfml-sentry-logger cfworker-sentry chequer-sentry cl-sentry-client cloudflare-sentry coredump.uploader.sdk crash-report-server dart dell_boomi dhqsentryclient dlink dropbox edgeworker erlang ertflix facepuncher figma-desktop filemaker fs-recbugs fyde gmsentry inea_online_tv ipssentryclient java java-starter kodus-sentry logstash loyaltylion.sentry-mini lua luya-errorapi mangoweb-sentry-php me.cloudguide.app mediasetplay-ctv-shell menukioskservice micro-sentry.javascript.browser mod_sentry mongooseim mulesoft nifi-bulletin ocfw patrol philo-roku platformsh.fluffy plugin_runner pobb.in pubfac-salesforce-apex pws raven raven-air raven-as3 raven-bash raven-cfml raven-clj raven-erlang raven-grails raven-java raven-java:log4j2 raven-java:logback raven-js raven-lua raven-lucee raven-node raven-objc raven-perl raven-php raven-python raven-qt raven-rbxlua raven-ruby raven-swift raven.cr raven_logstash rbxluau rcrowe-raven riot-assert-logger roku rooms segment_destination_function sentry sentry-android sentry-brightscript sentry-cfml sentry-cli sentry-cocoa sentry-cordova sentry-curl sentry-defold sentry-delphi sentry-delta sentry-electron sentry-elixir sentry-java sentry-java-dynasty sentry-kubernetes sentry-laravel sentry-light-native sentry-mojito sentry-objc sentry-ocaml sentry-php sentry-python sentry-radar sentry-raven sentry-react-native sentry-ruby sentry-sdk-roku sentry-swift sentry-symfony sentry-unity sentry.apex sentry.bam.ps4.trilithium.d sentry.cocoa sentry.cocoa.capacitor sentry.cocoa.dotnet sentry.cocoa.flutter sentry.cocoa.kmp sentry.cocoa.react-native sentry.cocoa.unity sentry.cocoa.unreal sentry.custom.batm_server sentry.dart sentry.dart.browser sentry.dart.flutter sentry.dotnet sentry.dotnet.android sentry.dotnet.aspnet sentry.dotnet.aspnetcore sentry.dotnet.aspnetcore.grpc sentry.dotnet.atlasproper sentry.dotnet.cocoa sentry.dotnet.extensions.logging sentry.dotnet.log4net sentry.dotnet.maui sentry.dotnet.nlog sentry.dotnet.serilog sentry.dotnet.unity sentry.dotnet.xamarin sentry.dotnet.xamarin-forms sentry.go sentry.go.echo sentry.go.fasthttp sentry.go.gin sentry.go.http sentry.go.logrus sentry.java sentry.java.android sentry.java.android.capacitor sentry.java.android.dotnet sentry.java.android.flutter sentry.java.android.kmp sentry.java.android.react-native sentry.java.android.timber sentry.java.android.unity sentry.java.android.unreal sentry.java.jul sentry.java.log4j2 sentry.java.logback sentry.java.spring sentry.java.spring-boot sentry.java.spring-boot.jakarta sentry.java.spring.jakarta sentry.javascript.angular sentry.javascript.angular-ivy sentry.javascript.browser sentry.javascript.bun sentry.javascript.capacitor sentry.javascript.cordova sentry.javascript.deno sentry.javascript.electron sentry.javascript.ember sentry.javascript.gatsby sentry.javascript.miniapp sentry.javascript.nextjs sentry.javascript.node sentry.javascript.node-experimental sentry.javascript.node.hapi sentry.javascript.raycast sentry.javascript.react sentry.javascript.react-native sentry.javascript.react-native.expo sentry.javascript.react.expo sentry.javascript.remix sentry.javascript.serverless sentry.javascript.sfcc sentry.javascript.svelte sentry.javascript.sveltekit sentry.javascript.vue sentry.last-oasis.crashreporter sentry.lua sentry.native sentry.native.android sentry.native.android.capacitor sentry.native.android.flutter sentry.native.android.react-native sentry.native.android.unity sentry.native.android.unreal sentry.native.dotnet sentry.native.unity sentry.native.unreal sentry.nativescript sentry.nopbyte.lua sentry.opentelemetry sentry.php sentry.php.laravel sentry.php.spiral sentry.php.spryker sentry.php.symfony sentry.php.wordpress sentry.php.wp-sentry-integration sentry.php.wpcare-helper-integration sentry.python sentry.python.aiohttp sentry.python.aws_lambda sentry.python.beam sentry.python.bottle sentry.python.chalice sentry.python.django sentry.python.falcon sentry.python.fastapi sentry.python.flask sentry.python.gcp sentry.python.pyramid sentry.python.quart sentry.python.sanic sentry.python.starlette sentry.python.tornado sentry.roblox sentry.ruby sentry.ruby.delayed_job sentry.ruby.icerrors_sidekiq sentry.ruby.inst_jobs sentry.ruby.rails sentry.ruby.resque sentry.ruby.sidekiq sentry.rust sentry.unity.irisvr sentry.unity.lite sentry.unsquared sentrydotnet sentrydotnet.aspnetcore sentryr sentryswift sfra sharpraven shawnxli-cloudflare-worker shentry/nsdk:simplenexusformcodebase simplenexusplugin simplenexusplugin2 slobs_updater smalltalk solve_web_sdk spotify-raven-cpp store-catalog-service suitest.sentry tame-sentry teak test-python thelawsociety tonyo.sentry-kubernetes toucan-js transit.javascript.javascriptcorelogger tsm unknown unreal.crashreporter utopia-logger vastdata.sentry.python vertigo.sentry virtualshieldsvc virtualshieldui ws xojo-sentry ```