@@ -91,6 +91,14 @@ const (
9191 envChipIngressBatchEmitterEnabled = "CL_CHIP_INGRESS_BATCH_EMITTER_ENABLED"
9292 envChipIngressDurableEmitterEnabled = "CL_CHIP_INGRESS_DURABLE_EMITTER_ENABLED"
9393
94+ envChipIngressBufferSize = "CL_CHIP_INGRESS_BUFFER_SIZE"
95+ envChipIngressMaxBatchSize = "CL_CHIP_INGRESS_MAX_BATCH_SIZE"
96+ envChipIngressMaxConcurrentSends = "CL_CHIP_INGRESS_MAX_CONCURRENT_SENDS"
97+ envChipIngressSendInterval = "CL_CHIP_INGRESS_SEND_INTERVAL"
98+ envChipIngressSendTimeout = "CL_CHIP_INGRESS_SEND_TIMEOUT"
99+ envChipIngressDrainTimeout = "CL_CHIP_INGRESS_DRAIN_TIMEOUT"
100+ envChipIngressMaxGRPCRequestSize = "CL_CHIP_INGRESS_MAX_GRPC_REQUEST_SIZE"
101+
94102 envCRESettings = cresettings .EnvNameSettings
95103 envCRESettingsDefault = cresettings .EnvNameSettingsDefault
96104)
@@ -105,6 +113,14 @@ type EnvConfig struct {
105113 ChipIngressBatchEmitterEnabled bool
106114 ChipIngressDurableEmitterEnabled bool
107115
116+ ChipIngressBufferSize uint
117+ ChipIngressMaxBatchSize uint
118+ ChipIngressMaxConcurrentSends int
119+ ChipIngressSendInterval time.Duration
120+ ChipIngressSendTimeout time.Duration
121+ ChipIngressDrainTimeout time.Duration
122+ ChipIngressMaxGRPCRequestSize uint
123+
108124 CRESettings string
109125 CRESettingsDefault string
110126
@@ -269,6 +285,13 @@ func (e *EnvConfig) AsCmdEnv() (env []string) {
269285 add (envChipIngressInsecureConnection , strconv .FormatBool (e .ChipIngressInsecureConnection ))
270286 add (envChipIngressBatchEmitterEnabled , strconv .FormatBool (e .ChipIngressBatchEmitterEnabled ))
271287 add (envChipIngressDurableEmitterEnabled , strconv .FormatBool (e .ChipIngressDurableEmitterEnabled ))
288+ add (envChipIngressBufferSize , strconv .FormatUint (uint64 (e .ChipIngressBufferSize ), 10 ))
289+ add (envChipIngressMaxBatchSize , strconv .FormatUint (uint64 (e .ChipIngressMaxBatchSize ), 10 ))
290+ add (envChipIngressMaxConcurrentSends , strconv .Itoa (e .ChipIngressMaxConcurrentSends ))
291+ add (envChipIngressSendInterval , e .ChipIngressSendInterval .String ())
292+ add (envChipIngressSendTimeout , e .ChipIngressSendTimeout .String ())
293+ add (envChipIngressDrainTimeout , e .ChipIngressDrainTimeout .String ())
294+ add (envChipIngressMaxGRPCRequestSize , strconv .FormatUint (uint64 (e .ChipIngressMaxGRPCRequestSize ), 10 ))
272295
273296 if e .CRESettings != "" {
274297 add (envCRESettings , e .CRESettings )
@@ -513,6 +536,34 @@ func (e *EnvConfig) parse() error {
513536 if err != nil {
514537 return fmt .Errorf ("failed to parse %s: %w" , envChipIngressDurableEmitterEnabled , err )
515538 }
539+ e .ChipIngressBufferSize , err = getUint (envChipIngressBufferSize )
540+ if err != nil {
541+ return fmt .Errorf ("failed to parse %s: %w" , envChipIngressBufferSize , err )
542+ }
543+ e .ChipIngressMaxBatchSize , err = getUint (envChipIngressMaxBatchSize )
544+ if err != nil {
545+ return fmt .Errorf ("failed to parse %s: %w" , envChipIngressMaxBatchSize , err )
546+ }
547+ e .ChipIngressMaxConcurrentSends , err = getInt (envChipIngressMaxConcurrentSends )
548+ if err != nil {
549+ return fmt .Errorf ("failed to parse %s: %w" , envChipIngressMaxConcurrentSends , err )
550+ }
551+ e .ChipIngressSendInterval , err = getDuration (envChipIngressSendInterval )
552+ if err != nil {
553+ return fmt .Errorf ("failed to parse %s: %w" , envChipIngressSendInterval , err )
554+ }
555+ e .ChipIngressSendTimeout , err = getDuration (envChipIngressSendTimeout )
556+ if err != nil {
557+ return fmt .Errorf ("failed to parse %s: %w" , envChipIngressSendTimeout , err )
558+ }
559+ e .ChipIngressDrainTimeout , err = getDuration (envChipIngressDrainTimeout )
560+ if err != nil {
561+ return fmt .Errorf ("failed to parse %s: %w" , envChipIngressDrainTimeout , err )
562+ }
563+ e .ChipIngressMaxGRPCRequestSize , err = getUint (envChipIngressMaxGRPCRequestSize )
564+ if err != nil {
565+ return fmt .Errorf ("failed to parse %s: %w" , envChipIngressMaxGRPCRequestSize , err )
566+ }
516567 }
517568
518569 e .CRESettings = os .Getenv (envCRESettings )
@@ -605,6 +656,18 @@ func getEnv[T any](key string, parse func(string) (T, error)) (t T, err error) {
605656 return
606657}
607658
659+ func getUint (envKey string ) (uint , error ) {
660+ s := os .Getenv (envKey )
661+ if s == "" {
662+ return 0 , nil
663+ }
664+ u , err := strconv .ParseUint (s , 10 , 64 )
665+ if err != nil {
666+ return 0 , err
667+ }
668+ return uint (u ), nil
669+ }
670+
608671func getInt (envKey string ) (int , error ) {
609672 s := os .Getenv (envKey )
610673 if s == "" {
0 commit comments