2020
2121from opentelemetry import trace
2222from opentelemetry .instrumentation ._semconv import (
23+ HTTP_DURATION_HISTOGRAM_BUCKETS_NEW ,
2324 OTEL_SEMCONV_STABILITY_OPT_IN ,
2425 _OpenTelemetrySemanticConventionStability ,
2526 _server_active_requests_count_attrs_new ,
@@ -522,6 +523,10 @@ def test_flask_metrics_new_semconv(self):
522523 self .assertAlmostEqual (
523524 duration_s , point .sum , places = 1
524525 )
526+ self .assertEqual (
527+ point .explicit_bounds ,
528+ HTTP_DURATION_HISTOGRAM_BUCKETS_NEW ,
529+ )
525530 histogram_data_point_seen = True
526531 if isinstance (point , NumberDataPoint ):
527532 number_data_point_seen = True
@@ -552,7 +557,10 @@ def test_flask_metric_values(self):
552557 self .assertEqual (point .value , 0 )
553558
554559 def _assert_basic_metric (
555- self , expected_duration_attributes , expected_requests_count_attributes
560+ self ,
561+ expected_duration_attributes ,
562+ expected_requests_count_attributes ,
563+ expected_histogram_explicit_bounds = None ,
556564 ):
557565 metrics_list = self .memory_metrics_reader .get_metrics_data ()
558566 for resource_metric in metrics_list .resource_metrics :
@@ -564,6 +572,11 @@ def _assert_basic_metric(
564572 expected_duration_attributes ,
565573 dict (point .attributes ),
566574 )
575+ if expected_histogram_explicit_bounds is not None :
576+ self .assertEqual (
577+ expected_histogram_explicit_bounds ,
578+ point .explicit_bounds ,
579+ )
567580 self .assertEqual (point .count , 1 )
568581 elif isinstance (point , NumberDataPoint ):
569582 self .assertDictEqual (
@@ -613,6 +626,7 @@ def test_basic_metric_success_new_semconv(self):
613626 self ._assert_basic_metric (
614627 expected_duration_attributes ,
615628 expected_requests_count_attributes ,
629+ expected_histogram_explicit_bounds = HTTP_DURATION_HISTOGRAM_BUCKETS_NEW ,
616630 )
617631
618632 def test_basic_metric_nonstandard_http_method_success (self ):
@@ -654,6 +668,7 @@ def test_basic_metric_nonstandard_http_method_success_new_semconv(self):
654668 self ._assert_basic_metric (
655669 expected_duration_attributes ,
656670 expected_requests_count_attributes ,
671+ expected_histogram_explicit_bounds = HTTP_DURATION_HISTOGRAM_BUCKETS_NEW ,
657672 )
658673
659674 @patch .dict (
@@ -679,6 +694,7 @@ def test_basic_metric_nonstandard_http_method_allowed_success_new_semconv(
679694 self ._assert_basic_metric (
680695 expected_duration_attributes ,
681696 expected_requests_count_attributes ,
697+ expected_histogram_explicit_bounds = HTTP_DURATION_HISTOGRAM_BUCKETS_NEW ,
682698 )
683699
684700 def test_metric_uninstrument (self ):
0 commit comments