@@ -16,7 +16,8 @@ use std::sync::LazyLock;
1616use std:: time:: Duration ;
1717
1818use databend_common_base:: runtime:: metrics:: register_counter_family;
19- use databend_common_base:: runtime:: metrics:: register_histogram_family_in_seconds;
19+ use databend_common_base:: runtime:: metrics:: register_histogram_family_in_milliseconds;
20+ use databend_common_base:: runtime:: metrics:: register_histogram_family_in_rows;
2021use databend_common_base:: runtime:: metrics:: FamilyCounter ;
2122use databend_common_base:: runtime:: metrics:: FamilyHistogram ;
2223
@@ -28,12 +29,13 @@ const METRIC_RETRY: &str = "external_retry";
2829const METRIC_ERROR : & str = "external_error" ;
2930const METRIC_RUNNING_REQUESTS : & str = "external_running_requests" ;
3031const METRIC_REQUESTS : & str = "external_requests" ;
32+ const METRIC_EXTERNAL_BLOCK_ROWS : & str = "external_block_rows" ;
3133
3234static REQUEST_EXTERNAL_DURATION : LazyLock < FamilyHistogram < VecLabels > > =
33- LazyLock :: new ( || register_histogram_family_in_seconds ( METRIC_REQUEST_EXTERNAL_DURATION ) ) ;
35+ LazyLock :: new ( || register_histogram_family_in_milliseconds ( METRIC_REQUEST_EXTERNAL_DURATION ) ) ;
3436
3537static CONNECT_EXTERNAL_DURATION : LazyLock < FamilyHistogram < VecLabels > > =
36- LazyLock :: new ( || register_histogram_family_in_seconds ( METRIC_CONNECT_EXTERNAL_DURATION ) ) ;
38+ LazyLock :: new ( || register_histogram_family_in_milliseconds ( METRIC_CONNECT_EXTERNAL_DURATION ) ) ;
3739
3840static RETRY_EXTERNAL : LazyLock < FamilyCounter < VecLabels > > =
3941 LazyLock :: new ( || register_counter_family ( METRIC_RETRY ) ) ;
@@ -47,6 +49,9 @@ static RUNNING_REQUESTS_EXTERNAL: LazyLock<FamilyCounter<VecLabels>> =
4749static REQUESTS_EXTERNAL_EXTERNAL : LazyLock < FamilyCounter < VecLabels > > =
4850 LazyLock :: new ( || register_counter_family ( METRIC_REQUESTS ) ) ;
4951
52+ static EXTERNAL_BLOCK_ROWS : LazyLock < FamilyHistogram < VecLabels > > =
53+ LazyLock :: new ( || register_histogram_family_in_rows ( METRIC_EXTERNAL_BLOCK_ROWS ) ) ;
54+
5055const LABEL_FUNCTION_NAME : & str = "function_name" ;
5156const LABEL_ERROR_KIND : & str = "error_kind" ;
5257
@@ -64,6 +69,13 @@ pub fn record_request_external_duration(function_name: impl Into<String>, durati
6469 . observe ( duration. as_millis_f64 ( ) ) ;
6570}
6671
72+ pub fn record_request_external_block_rows ( function_name : impl Into < String > , rows : usize ) {
73+ let labels = & vec ! [ ( LABEL_FUNCTION_NAME , function_name. into( ) ) ] ;
74+ EXTERNAL_BLOCK_ROWS
75+ . get_or_create ( labels)
76+ . observe ( rows as f64 ) ;
77+ }
78+
6779pub fn record_retry_external ( function_name : impl Into < String > , error_kind : impl Into < String > ) {
6880 let labels = & vec ! [
6981 ( LABEL_FUNCTION_NAME , function_name. into( ) ) ,
0 commit comments