@@ -10,6 +10,7 @@ import (
1010 "path/filepath"
1111 "strconv"
1212 "syscall"
13+ "time"
1314
1415 "github.com/pyroscope-io/pyroscope-lambda-extension/extension"
1516 "github.com/pyroscope-io/pyroscope-lambda-extension/relay"
3132 remoteAddress = getEnvStrOr ("PYROSCOPE_REMOTE_ADDRESS" , "https://ingest.pyroscope.cloud" )
3233
3334 authToken = getEnvStrOr ("PYROSCOPE_AUTH_TOKEN" , "" )
35+ timeout = getEnvDurationOr ("PYROSCOPE_TIMEOUT" , time .Second * 10 )
3436
3537 // profile the extension?
3638 selfProfiling = getEnvBool ("PYROSCOPE_SELF_PROFILING" )
@@ -41,7 +43,7 @@ func main() {
4143 ctx , cancel := context .WithCancel (context .Background ())
4244
4345 // Init components
44- remoteClient := relay .NewRemoteClient (logger , & relay.RemoteClientCfg {Address : remoteAddress , AuthToken : authToken })
46+ remoteClient := relay .NewRemoteClient (logger , & relay.RemoteClientCfg {Address : remoteAddress , AuthToken : authToken , Timeout : timeout })
4547 // TODO(eh-am): a find a better default for num of workers
4648 queue := relay .NewRemoteQueue (logger , & relay.RemoteQueueCfg {NumWorkers : 4 }, remoteClient )
4749 ctrl := relay .NewController (logger , queue )
@@ -168,3 +170,19 @@ func getEnvBool(key string) bool {
168170
169171 return v
170172}
173+
174+ func getEnvDurationOr (key string , fallback time.Duration ) time.Duration {
175+ k , ok := os .LookupEnv (key )
176+
177+ // has an explicit value
178+ if ok && k != "" {
179+ dur , err := time .ParseDuration (k )
180+ if err != nil {
181+ return fallback
182+ }
183+
184+ return dur
185+ }
186+
187+ return fallback
188+ }
0 commit comments