@@ -159,19 +159,27 @@ func (r *gubernatorRateLimiter) Start(ctx context.Context, host component.Host)
159159 r .windowConfigurator = wc .(WindowConfigurator )
160160 }
161161
162- r .daemon , err = gubernator .SpawnDaemon (ctx , r .daemonCfg )
163- if err != nil {
164- return fmt .Errorf ("failed to spawn gubernator daemon: %w" , err )
162+ if r .daemon == nil {
163+ r .daemon , err = gubernator .SpawnDaemon (ctx , r .daemonCfg )
164+ if err != nil {
165+ return fmt .Errorf ("failed to spawn gubernator daemon: %w" , err )
166+ }
165167 }
166168
167- r .clientConn , err = grpc .NewClient (r .daemonCfg .GRPCListenAddress ,
168- grpc .WithTransportCredentials (insecure .NewCredentials ()),
169- grpc .WithStatsHandler (otelgrpc .NewClientHandler (otelgrpc .WithTracerProvider (r .tracerProvider ))),
170- )
171- if err != nil {
172- return fmt .Errorf ("failed to create gRPC client connection: %w" , err )
169+ if r .clientConn == nil {
170+ r .clientConn , err = grpc .NewClient (r .daemonCfg .GRPCListenAddress ,
171+ grpc .WithTransportCredentials (insecure .NewCredentials ()),
172+ grpc .WithStatsHandler (otelgrpc .NewClientHandler (otelgrpc .WithTracerProvider (r .tracerProvider ))),
173+ )
174+ if err != nil {
175+ return fmt .Errorf ("failed to create gRPC client connection: %w" , err )
176+ }
173177 }
174- r .client = gubernator .NewV1Client (r .clientConn )
178+
179+ if r .client == nil {
180+ r .client = gubernator .NewV1Client (r .clientConn )
181+ }
182+
175183 return nil
176184}
177185
0 commit comments