dhiaayachi / temporal

Temporal service
https://docs.temporal.io
MIT License
0 stars 0 forks source link

Enable wildcard namespace definition when setting namespace RPS #114

Open dhiaayachi opened 2 weeks ago

dhiaayachi commented 2 weeks ago

Is your feature request related to a problem? Please describe. It seems there is a way of setting namespace RPS limits as outlined here. To enable a more dynamic approach, it would be useful to be able to define wildcard rules that get applied to namespaces (e.g. stg-* means any namespaces matching this rule such as stg-test will have this rule applied to it).

Describe the solution you'd like Current functionality:

frontend.namespacerps:
- value: 2000
- value: 100
  constraints:
    namespace: "namespaceA"
- value: 500
  constraints:
    namespace: "namespaceB"

Requested functionality:

frontend.namespacerps:
- value: 1000
- value: 500
  constraints:
    namespace: "stg-*"
- value: 600
  constraints:
    namespace: "prod-*"

Describe alternatives you've considered The alternative here is updating the server config every time a new namespace is added to which we want to apply RPS limits. The proposed approach can allow a more generic configuration of RPS limits to namespaces.

Additional context N/A

dhiaayachi commented 6 days ago

Is your feature request related to a problem? Please describe.

It seems that there is a way of setting namespace RPS limits as outlined here. To enable a more dynamic approach, it would be useful to be able to define wildcard rules that get applied to namespaces (e.g. stg-* means any namespaces matching this rule such as stg-test will have this rule applied to it).

Describe the solution you'd like

Currently, the dynamic configuration allows namespace-specific limits to be defined like this:

frontend.namespacerps:
- value: 2000
- value: 100
  constraints:
    namespace: "namespaceA"
- value: 500
  constraints:
    namespace: "namespaceB"

The proposed change would allow for wildcard rules in the namespace constraint:

frontend.namespacerps:
- value: 1000
- value: 500
  constraints:
    namespace: "stg-*"
- value: 600
  constraints:
    namespace: "prod-*"

Describe alternatives you've considered

The alternative here is updating the server config every time a new namespace is added to which we want to apply RPS limits. The proposed approach can allow a more generic configuration of RPS limits to namespaces.

Additional context

N/A

dhiaayachi commented 6 days ago

Thanks for the feature request. It's a great suggestion! Currently, Temporal doesn't support wildcard rules for namespace RPS limits.

As a workaround, you can achieve a similar effect by using a dynamic configuration with a namespace constraint, but you'll have to update the configuration file manually every time you create a new namespace.

Here's an example of a dynamic configuration file:

frontend.namespacerps:
- value: 1000
- value: 500
  constraints:
    namespace: "stg-*"
- value: 600
  constraints:
    namespace: "prod-*"

The dynamic configuration file can be loaded into your Temporal server using the dynamicConfigClient section in your configuration file:

dynamicConfigClient:
  filepath: "path/to/dynamic-config.yaml"
  pollInterval: "10s"
dhiaayachi commented 5 days ago

Thanks for the feature request!

You can work around this by defining a separate RPS constraint for each namespace. However, this approach requires manual updates each time a new namespace is added.

We'll consider adding wildcard namespace support to the Temporal configuration in the future.