@@ -737,37 +737,31 @@ def test_wsgi_metrics(self):
737737 response = Client ().get ("/span_name/1234/" )
738738 self .assertEqual (response .status_code , 200 )
739739 duration = max (round ((default_timer () - start ) * 1000 ), 0 )
740- metrics_list = self .memory_metrics_reader . get_metrics_data ()
740+ metrics = self .get_sorted_metrics ()
741741 number_data_point_seen = False
742742 histrogram_data_point_seen = False
743743
744- self .assertTrue (len (metrics_list .resource_metrics ) != 0 )
745- for resource_metric in metrics_list .resource_metrics :
746- self .assertTrue (len (resource_metric .scope_metrics ) != 0 )
747- for scope_metric in resource_metric .scope_metrics :
748- self .assertTrue (len (scope_metric .metrics ) != 0 )
749- for metric in scope_metric .metrics :
750- self .assertIn (metric .name , _expected_metric_names )
751- data_points = list (metric .data .data_points )
752- self .assertEqual (len (data_points ), 1 )
753- for point in data_points :
754- if isinstance (point , HistogramDataPoint ):
755- self .assertEqual (point .count , 3 )
756- histrogram_data_point_seen = True
757- self .assertAlmostEqual (
758- duration , point .sum , delta = 100
759- )
760- self .assertDictEqual (
761- expected_duration_attributes ,
762- dict (point .attributes ),
763- )
764- if isinstance (point , NumberDataPoint ):
765- number_data_point_seen = True
766- self .assertEqual (point .value , 0 )
767- self .assertDictEqual (
768- expected_requests_count_attributes ,
769- dict (point .attributes ),
770- )
744+ self .assertTrue (len (metrics ) != 0 )
745+ for metric in metrics :
746+ self .assertIn (metric .name , _expected_metric_names )
747+ data_points = list (metric .data .data_points )
748+ self .assertEqual (len (data_points ), 1 )
749+ for point in data_points :
750+ if isinstance (point , HistogramDataPoint ):
751+ self .assertEqual (point .count , 3 )
752+ histrogram_data_point_seen = True
753+ self .assertAlmostEqual (duration , point .sum , delta = 100 )
754+ self .assertDictEqual (
755+ expected_duration_attributes ,
756+ dict (point .attributes ),
757+ )
758+ if isinstance (point , NumberDataPoint ):
759+ number_data_point_seen = True
760+ self .assertEqual (point .value , 0 )
761+ self .assertDictEqual (
762+ expected_requests_count_attributes ,
763+ dict (point .attributes ),
764+ )
771765 self .assertTrue (histrogram_data_point_seen and number_data_point_seen )
772766
773767 # pylint: disable=too-many-locals
@@ -792,41 +786,35 @@ def test_wsgi_metrics_new_semconv(self):
792786 response = Client ().get ("/span_name/1234/" )
793787 self .assertEqual (response .status_code , 200 )
794788 duration_s = default_timer () - start
795- metrics_list = self .memory_metrics_reader . get_metrics_data ()
789+ metrics = self .get_sorted_metrics ()
796790 number_data_point_seen = False
797791 histrogram_data_point_seen = False
798792
799- self .assertTrue (len (metrics_list .resource_metrics ) != 0 )
800- for resource_metric in metrics_list .resource_metrics :
801- self .assertTrue (len (resource_metric .scope_metrics ) != 0 )
802- for scope_metric in resource_metric .scope_metrics :
803- self .assertTrue (len (scope_metric .metrics ) != 0 )
804- for metric in scope_metric .metrics :
805- self .assertIn (metric .name , _expected_metric_names )
806- data_points = list (metric .data .data_points )
807- self .assertEqual (len (data_points ), 1 )
808- for point in data_points :
809- if isinstance (point , HistogramDataPoint ):
810- self .assertEqual (point .count , 3 )
811- histrogram_data_point_seen = True
812- self .assertAlmostEqual (
813- duration_s , point .sum , places = 1
814- )
815- self .assertDictEqual (
816- expected_duration_attributes ,
817- dict (point .attributes ),
818- )
819- self .assertEqual (
820- point .explicit_bounds ,
821- HTTP_DURATION_HISTOGRAM_BUCKETS_NEW ,
822- )
823- if isinstance (point , NumberDataPoint ):
824- number_data_point_seen = True
825- self .assertEqual (point .value , 0 )
826- self .assertDictEqual (
827- expected_requests_count_attributes ,
828- dict (point .attributes ),
829- )
793+ self .assertTrue (len (metrics ) != 0 )
794+ for metric in metrics :
795+ self .assertIn (metric .name , _expected_metric_names )
796+ data_points = list (metric .data .data_points )
797+ self .assertEqual (len (data_points ), 1 )
798+ for point in data_points :
799+ if isinstance (point , HistogramDataPoint ):
800+ self .assertEqual (point .count , 3 )
801+ histrogram_data_point_seen = True
802+ self .assertAlmostEqual (duration_s , point .sum , places = 1 )
803+ self .assertDictEqual (
804+ expected_duration_attributes ,
805+ dict (point .attributes ),
806+ )
807+ self .assertEqual (
808+ point .explicit_bounds ,
809+ HTTP_DURATION_HISTOGRAM_BUCKETS_NEW ,
810+ )
811+ if isinstance (point , NumberDataPoint ):
812+ number_data_point_seen = True
813+ self .assertEqual (point .value , 0 )
814+ self .assertDictEqual (
815+ expected_requests_count_attributes ,
816+ dict (point .attributes ),
817+ )
830818 self .assertTrue (histrogram_data_point_seen and number_data_point_seen )
831819
832820 # pylint: disable=too-many-locals
@@ -867,69 +855,59 @@ def test_wsgi_metrics_both_semconv(self):
867855 self .assertEqual (response .status_code , 200 )
868856 duration_s = max (default_timer () - start , 0 )
869857 duration = max (round (duration_s * 1000 ), 0 )
870- metrics_list = self .memory_metrics_reader . get_metrics_data ()
858+ metrics = self .get_sorted_metrics ()
871859 number_data_point_seen = False
872860 histrogram_data_point_seen = False
873861
874- self .assertTrue (len (metrics_list .resource_metrics ) != 0 )
875- for resource_metric in metrics_list .resource_metrics :
876- self .assertTrue (len (resource_metric .scope_metrics ) != 0 )
877- for scope_metric in resource_metric .scope_metrics :
878- self .assertTrue (len (scope_metric .metrics ) != 0 )
879- for metric in scope_metric .metrics :
880- self .assertIn (metric .name , _expected_metric_names )
881- data_points = list (metric .data .data_points )
882- self .assertEqual (len (data_points ), 1 )
883- for point in data_points :
884- if isinstance (point , HistogramDataPoint ):
885- self .assertEqual (point .count , 3 )
886- histrogram_data_point_seen = True
887- if metric .name == "http.server.request.duration" :
888- self .assertAlmostEqual (
889- duration_s , point .sum , places = 1
890- )
891- self .assertDictEqual (
892- expected_duration_attributes_new ,
893- dict (point .attributes ),
894- )
895- self .assertEqual (
896- point .explicit_bounds ,
897- HTTP_DURATION_HISTOGRAM_BUCKETS_NEW ,
898- )
899- elif metric .name == "http.server.duration" :
900- self .assertAlmostEqual (
901- duration , point .sum , delta = 100
902- )
903- self .assertDictEqual (
904- expected_duration_attributes_old ,
905- dict (point .attributes ),
906- )
907- self .assertEqual (
908- point .explicit_bounds ,
909- HTTP_DURATION_HISTOGRAM_BUCKETS_OLD ,
910- )
911- if isinstance (point , NumberDataPoint ):
912- number_data_point_seen = True
913- self .assertEqual (point .value , 0 )
914- self .assertDictEqual (
915- expected_requests_count_attributes ,
916- dict (point .attributes ),
917- )
862+ self .assertTrue (len (metrics ) != 0 )
863+ for metric in metrics :
864+ self .assertIn (metric .name , _expected_metric_names )
865+ data_points = list (metric .data .data_points )
866+ self .assertEqual (len (data_points ), 1 )
867+ for point in data_points :
868+ if isinstance (point , HistogramDataPoint ):
869+ self .assertEqual (point .count , 3 )
870+ histrogram_data_point_seen = True
871+ if metric .name == "http.server.request.duration" :
872+ self .assertAlmostEqual (duration_s , point .sum , places = 1 )
873+ self .assertDictEqual (
874+ expected_duration_attributes_new ,
875+ dict (point .attributes ),
876+ )
877+ self .assertEqual (
878+ point .explicit_bounds ,
879+ HTTP_DURATION_HISTOGRAM_BUCKETS_NEW ,
880+ )
881+ elif metric .name == "http.server.duration" :
882+ self .assertAlmostEqual (duration , point .sum , delta = 100 )
883+ self .assertDictEqual (
884+ expected_duration_attributes_old ,
885+ dict (point .attributes ),
886+ )
887+ self .assertEqual (
888+ point .explicit_bounds ,
889+ HTTP_DURATION_HISTOGRAM_BUCKETS_OLD ,
890+ )
891+ if isinstance (point , NumberDataPoint ):
892+ number_data_point_seen = True
893+ self .assertEqual (point .value , 0 )
894+ self .assertDictEqual (
895+ expected_requests_count_attributes ,
896+ dict (point .attributes ),
897+ )
918898 self .assertTrue (histrogram_data_point_seen and number_data_point_seen )
919899
920900 def test_wsgi_metrics_unistrument (self ):
921901 Client ().get ("/span_name/1234/" )
922902 _django_instrumentor .uninstrument ()
923903 Client ().get ("/span_name/1234/" )
924- metrics_list = self .memory_metrics_reader .get_metrics_data ()
925- for resource_metric in metrics_list .resource_metrics :
926- for scope_metric in resource_metric .scope_metrics :
927- for metric in scope_metric .metrics :
928- for point in list (metric .data .data_points ):
929- if isinstance (point , HistogramDataPoint ):
930- self .assertEqual (1 , point .count )
931- if isinstance (point , NumberDataPoint ):
932- self .assertEqual (0 , point .value )
904+ metrics = self .get_sorted_metrics ()
905+ for metric in metrics :
906+ for point in list (metric .data .data_points ):
907+ if isinstance (point , HistogramDataPoint ):
908+ self .assertEqual (1 , point .count )
909+ if isinstance (point , NumberDataPoint ):
910+ self .assertEqual (0 , point .value )
933911
934912
935913class TestMiddlewareWithTracerProvider (WsgiTestBase ):
0 commit comments