diff --git a/config/configgrpc/configgrpc.go b/config/configgrpc/configgrpc.go index 1d329eacaab..ff53f280f0d 100644 --- a/config/configgrpc/configgrpc.go +++ b/config/configgrpc/configgrpc.go @@ -36,6 +36,7 @@ import ( "go.opentelemetry.io/collector/config/configopaque" "go.opentelemetry.io/collector/config/configoptional" "go.opentelemetry.io/collector/config/configtls" + "go.opentelemetry.io/collector/confmap" "go.opentelemetry.io/collector/extension/extensionauth" ) @@ -65,6 +66,15 @@ func BalancerName() string { return "round_robin" } +var _ confmap.Unmarshaler = (*Headers)(nil) + +type Headers map[string]configopaque.String + +// Unmarshal implements confmap.Unmarshaler. +func (h *Headers) Unmarshal(conf *confmap.Conf) error { + panic("I got called") +} + // ClientConfig defines common settings for a gRPC client configuration. type ClientConfig struct { // The target to which the exporter is going to send traces or metrics, @@ -95,7 +105,7 @@ type ClientConfig struct { WaitForReady bool `mapstructure:"wait_for_ready,omitempty"` // The headers associated with gRPC requests. - Headers map[string]configopaque.String `mapstructure:"headers,omitempty"` + Headers Headers `mapstructure:"headers,omitempty"` // Sets the balancer in grpclb_policy to discover the servers. Default is pick_first. // https://github.com/grpc/grpc-go/blob/master/examples/features/load_balancing/README.md