@@ -2092,6 +2092,7 @@ mod tests {
20922092
20932093 use std:: time:: Instant ;
20942094
2095+ use iroh_metrics:: { service:: MetricsSource , MetricsGroupSet } ;
20952096 use iroh_relay:: http:: Protocol ;
20962097 use n0_future:: StreamExt ;
20972098 use rand:: SeedableRng ;
@@ -2849,11 +2850,15 @@ mod tests {
28492850 #[ tokio:: test]
28502851 #[ traced_test]
28512852 async fn metrics_smoke ( ) -> testresult:: TestResult {
2853+ let secret_key = SecretKey :: from_bytes ( & [ 0u8 ; 32 ] ) ;
28522854 let client = Endpoint :: builder ( )
2855+ . secret_key ( secret_key)
28532856 . relay_mode ( RelayMode :: Disabled )
28542857 . bind ( )
28552858 . await ?;
2859+ let secret_key = SecretKey :: from_bytes ( & [ 1u8 ; 32 ] ) ;
28562860 let server = Endpoint :: builder ( )
2861+ . secret_key ( secret_key)
28572862 . relay_mode ( RelayMode :: Disabled )
28582863 . alpns ( vec ! [ TEST_ALPN . to_vec( ) ] )
28592864 . bind ( )
@@ -2893,6 +2898,18 @@ mod tests {
28932898 assert_eq ! ( m. magicsock. connection_handshake_success. get( ) , 1 ) ;
28942899 assert ! ( m. magicsock. recv_datagrams. get( ) > 0 ) ;
28952900
2901+ // test openmetrics encoding with labeled subregistries per endpoint
2902+ let mut registry = iroh_metrics:: Registry :: default ( ) ;
2903+ client. metrics ( ) . register (
2904+ registry. sub_registry_with_label ( ( "id" . into ( ) , client. node_id ( ) . fmt_short ( ) . into ( ) ) ) ,
2905+ ) ;
2906+ server. metrics ( ) . register (
2907+ registry. sub_registry_with_label ( ( "id" . into ( ) , server. node_id ( ) . fmt_short ( ) . into ( ) ) ) ,
2908+ ) ;
2909+ let s = registry. encode_openmetrics ( ) ?;
2910+ assert ! ( s. contains( r#"magicsock_nodes_contacted_directly_total{id="3b6a27bcce"} 1"# ) ) ;
2911+ assert ! ( s. contains( r#"magicsock_nodes_contacted_directly_total{id="8a88e3dd74"} 1"# ) ) ;
2912+
28962913 Ok ( ( ) )
28972914 }
28982915}
0 commit comments