@@ -1042,3 +1042,48 @@ func TestSendProfilesWhenEndpointHasHttpScheme(t *testing.T) {
10421042 })
10431043 }
10441044}
1045+
1046+ func TestUserAgentHeader_OverriddenByConfig (t * testing.T ) {
1047+ // Start an OTLP-compatible receiver.
1048+ ln , err := net .Listen ("tcp" , "localhost:" )
1049+ require .NoError (t , err , "Failed to find an available address to run the gRPC server: %v" , err )
1050+ rcv := otlpMetricsReceiverOnGRPCServer (ln )
1051+ defer rcv .srv .GracefulStop ()
1052+
1053+ // Start an OTLP exporter with a custom User-Agent header.
1054+ factory := NewFactory ()
1055+ cfg := factory .CreateDefaultConfig ().(* Config )
1056+ cfg .QueueConfig = configoptional .None [exporterhelper.QueueBatchConfig ]()
1057+ cfg .ClientConfig = configgrpc.ClientConfig {
1058+ Endpoint : ln .Addr ().String (),
1059+ TLS : configtls.ClientConfig {
1060+ Insecure : true ,
1061+ },
1062+ UserAgent : "My Distribution For The Collector" ,
1063+ }
1064+ set := exportertest .NewNopSettings (factory .Type ())
1065+ set .BuildInfo .Description = "Collector"
1066+ set .BuildInfo .Version = "1.2.3test"
1067+
1068+ exp , err := factory .CreateMetrics (context .Background (), set , cfg )
1069+ require .NoError (t , err )
1070+ require .NotNil (t , exp )
1071+ defer func () {
1072+ assert .NoError (t , exp .Shutdown (context .Background ()))
1073+ }()
1074+
1075+ require .NoError (t , exp .Start (context .Background (), componenttest .NewNopHost ()))
1076+
1077+ // Send a metric to trigger an RPC.
1078+ require .NoError (t , exp .ConsumeMetrics (context .Background (), pmetric .NewMetrics ()))
1079+
1080+ assert .Eventually (t , func () bool {
1081+ return rcv .requestCount .Load () > 0
1082+ }, 10 * time .Second , 5 * time .Millisecond )
1083+
1084+ md := rcv .getMetadata ()
1085+ require .Len (t , md .Get ("User-Agent" ), 1 )
1086+ // User-configured value must win over the builtin BuildInfo agent.
1087+ require .Contains (t , md .Get ("User-Agent" )[0 ], "My Distribution For The Collector" )
1088+ require .NotContains (t , md .Get ("User-Agent" )[0 ], "Collector/1.2.3test" )
1089+ }
0 commit comments