@@ -102,6 +102,14 @@ const fn default_use_v2_api_series() -> bool {
102102 true
103103}
104104
105+ fn series_shadow_config_for_endpoint ( series_endpoint : MetricsEndpoint , sample_rate : f64 ) -> SeriesShadowConfig {
106+ SeriesShadowConfig :: new ( if series_endpoint == MetricsEndpoint :: SeriesV2 {
107+ sample_rate
108+ } else {
109+ 0.0
110+ } )
111+ }
112+
105113/// Encoding mode for a metrics endpoint.
106114#[ derive( Clone , Copy , Debug , PartialEq , Eq ) ]
107115enum MetricsEncoderMode {
@@ -324,20 +332,20 @@ impl EncoderBuilder for DatadogMetricsConfiguration {
324332 MetricsEncoderMode :: from_config ( self . v3_api . use_v3_series ( ) , self . v3_api . use_v3_series_validate ( ) ) ;
325333 let sketches_mode =
326334 MetricsEncoderMode :: from_config ( self . v3_api . use_v3_sketches ( ) , self . v3_api . use_v3_sketches_validate ( ) ) ;
327- let series_shadow_config = SeriesShadowConfig :: new ( self . v3_api . series . shadow_sample_rate ) ;
335+ let series_endpoint = if self . use_v2_api_series {
336+ MetricsEndpoint :: SeriesV2
337+ } else {
338+ MetricsEndpoint :: SeriesV1
339+ } ;
340+ let series_shadow_config =
341+ series_shadow_config_for_endpoint ( series_endpoint, self . v3_api . series . shadow_sample_rate ) ;
328342 let v3_runtime_config = V3RuntimeConfig {
329343 endpoint_config,
330344 payload_limits,
331345 series_endpoint_uri,
332346 shadow_series_endpoint_uri,
333347 series_shadow_config,
334348 } ;
335-
336- let series_endpoint = if self . use_v2_api_series {
337- MetricsEndpoint :: SeriesV2
338- } else {
339- MetricsEndpoint :: SeriesV1
340- } ;
341349 let generic_payload_limits = clamp_payload_limits (
342350 self . max_uncompressed_payload_size ,
343351 self . max_payload_size ,
@@ -1507,6 +1515,12 @@ serializer_experimental_use_v3_api:
15071515 assert ! ( !shadow_sample_matches( 0.5 , 0.6 ) ) ;
15081516 }
15091517
1518+ #[ test]
1519+ fn shadow_sampling_is_disabled_for_v1_series_baseline ( ) {
1520+ assert ! ( series_shadow_config_for_endpoint( MetricsEndpoint :: SeriesV2 , 1.0 ) . is_enabled( ) ) ;
1521+ assert ! ( !series_shadow_config_for_endpoint( MetricsEndpoint :: SeriesV1 , 1.0 ) . is_enabled( ) ) ;
1522+ }
1523+
15101524 #[ tokio:: test]
15111525 async fn create_v3_request_uses_configured_endpoint_uri ( ) {
15121526 let request = create_v3_request (
0 commit comments