Summary
Currently, AmplitudeExperiment::RemoteEvaluationConfig allows configuring only read_timeout through the fetch_timeout_millis parameter.
Could you add open_timeout_millis to AmplitudeExperiment::RemoteEvaluationConfig to allow configuring the connection opening timeout?
config = AmplitudeExperiment::RemoteEvaluationConfig.new(
fetch_timeout_millis: 5000, # Read timeout
open_timeout_millis: 5000 # Open timeout (New)
)
A related discussion about this missing configuration occurred here:
Issue #41 - Comment.
Motivations
Occasionally, requests to Amplitude fail due to excessive time required to establish a connection:
Failed to open TCP connection to api.lab.amplitude.com:443 (execution expired)"
Currently, the open_timeout value is not configurable and defaults to 60 seconds, which can lead to a thread being blocked for an extended period. This impacts application performance, especially in multi-threaded environments where long waits can cause delays in processing other requests.