Skip to content

Instantly share code, notes, and snippets.

@Pchelolo
Created June 11, 2020 17:21
Show Gist options
  • Save Pchelolo/94373e5787dae7bb56e086e69570bfb4 to your computer and use it in GitHub Desktop.
Save Pchelolo/94373e5787dae7bb56e086e69570bfb4 to your computer and use it in GitHub Desktop.
Step1: Envoy: DynamicMetadataAction
- { dynamic: { key: ‘blabla_key”, value: “blablakey_to_get_value_from_dynamic_metadata” } }
Step2: Ratelimiter service & data-plane: rate limits overrides in a request, descriptor etc
Step3: Envoy, envoy filter: pass dynamic limits from actions into descriptors. Somehow.
- { dynamic: { key: ‘blabla_key”, value: “blablakey_to_get_value_from_dynamic_metadata”, limit_override: { dynamic: { limit: “key_to_get_limit”, “unit”: “kley_to_get_unit” } } } }
Normal endpoint:
(client_id: 1234) - global limit
Expensive endpoint:
(client_id: 1234) - global limit
(client_id: 1234)(endpoint: expensive) - expensive special limit
additonal_config:
‘lua_filter’:
limit_multiplier: 0.1
rate_limits:
- stage: 0
actions:
- {dynamic_metadata: {key: “client_id, value_key: "client_id" } }
limit_override:
Type: dynamic
limit_key: blabla
- stage: 0
actions:
- {dynamic_metadata: {key: “client_id, value_key: "client_id" } }
- {generic_key: {key: “endpoint, value: “parser” } }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment