@@ -631,6 +631,102 @@ fn span_metrics(
631631 . always( ) , // already guarded by condition on metric
632632 ] ,
633633 } ,
634+ MetricSpec {
635+ category: DataCategory :: Span ,
636+ mri: "g:spans/mobile.slow_frames@none" . into( ) ,
637+ field: Some ( "span.measurements.frames.slow.value" . into( ) ) ,
638+ condition: Some ( is_mobile. clone( ) & duration_condition. clone( ) ) ,
639+ tags: vec![
640+ Tag :: with_key( "transaction" )
641+ . from_field( "span.sentry_tags.transaction" )
642+ . always( ) ,
643+ Tag :: with_key( "environment" )
644+ . from_field( "span.sentry_tags.environment" )
645+ . always( ) ,
646+ Tag :: with_key( "release" )
647+ . from_field( "span.sentry_tags.release" )
648+ . always( ) ,
649+ Tag :: with_key( "span.description" )
650+ . from_field( "span.sentry_tags.description" )
651+ . always( ) ,
652+ Tag :: with_key( "span.op" )
653+ . from_field( "span.sentry_tags.op" )
654+ . always( ) ,
655+ Tag :: with_key( "span.group" )
656+ . from_field( "span.sentry_tags.group" )
657+ . always( ) ,
658+ Tag :: with_key( "device.class" )
659+ . from_field( "span.sentry_tags.device.class" )
660+ . always( ) ,
661+ Tag :: with_key( "os.name" )
662+ . from_field( "span.sentry_tags.os.name" )
663+ . always( ) ,
664+ ] ,
665+ } ,
666+ MetricSpec {
667+ category: DataCategory :: Span ,
668+ mri: "g:spans/mobile.frozen_frames@none" . into( ) ,
669+ field: Some ( "span.measurements.frames.frozen.value" . into( ) ) ,
670+ condition: Some ( is_mobile. clone( ) & duration_condition. clone( ) ) ,
671+ tags: vec![
672+ Tag :: with_key( "transaction" )
673+ . from_field( "span.sentry_tags.transaction" )
674+ . always( ) ,
675+ Tag :: with_key( "environment" )
676+ . from_field( "span.sentry_tags.environment" )
677+ . always( ) ,
678+ Tag :: with_key( "release" )
679+ . from_field( "span.sentry_tags.release" )
680+ . always( ) ,
681+ Tag :: with_key( "span.description" )
682+ . from_field( "span.sentry_tags.description" )
683+ . always( ) ,
684+ Tag :: with_key( "span.op" )
685+ . from_field( "span.sentry_tags.op" )
686+ . always( ) ,
687+ Tag :: with_key( "span.group" )
688+ . from_field( "span.sentry_tags.group" )
689+ . always( ) ,
690+ Tag :: with_key( "device.class" )
691+ . from_field( "span.sentry_tags.device.class" )
692+ . always( ) ,
693+ Tag :: with_key( "os.name" )
694+ . from_field( "span.sentry_tags.os.name" )
695+ . always( ) ,
696+ ] ,
697+ } ,
698+ MetricSpec {
699+ category: DataCategory :: Span ,
700+ mri: "g:spans/mobile.total_frames@none" . into( ) ,
701+ field: Some ( "span.measurements.frames.total.value" . into( ) ) ,
702+ condition: Some ( is_mobile. clone( ) & duration_condition. clone( ) ) ,
703+ tags: vec![
704+ Tag :: with_key( "transaction" )
705+ . from_field( "span.sentry_tags.transaction" )
706+ . always( ) ,
707+ Tag :: with_key( "environment" )
708+ . from_field( "span.sentry_tags.environment" )
709+ . always( ) ,
710+ Tag :: with_key( "release" )
711+ . from_field( "span.sentry_tags.release" )
712+ . always( ) ,
713+ Tag :: with_key( "span.description" )
714+ . from_field( "span.sentry_tags.description" )
715+ . always( ) ,
716+ Tag :: with_key( "span.op" )
717+ . from_field( "span.sentry_tags.op" )
718+ . always( ) ,
719+ Tag :: with_key( "span.group" )
720+ . from_field( "span.sentry_tags.group" )
721+ . always( ) ,
722+ Tag :: with_key( "device.class" )
723+ . from_field( "span.sentry_tags.device.class" )
724+ . always( ) ,
725+ Tag :: with_key( "os.name" )
726+ . from_field( "span.sentry_tags.os.name" )
727+ . always( ) ,
728+ ] ,
729+ } ,
634730 ] ;
635731
636732 if double_write_distributions_as_gauges {
0 commit comments