Skip to content

Instantly share code, notes, and snippets.

@calam1
Created August 16, 2022 15:10
Show Gist options
  • Save calam1/3aafeb676eb9a6898e6377360c1ba801 to your computer and use it in GitHub Desktop.
Save calam1/3aafeb676eb9a6898e6377360c1ba801 to your computer and use it in GitHub Desktop.
lua script that sets dynamicMetadata
function envoy_on_request(request_handle)
local reqs_per_unit = request_handle:streamInfo():dynamicMetadata():get("envoy.filters.http.header_to_metadata")["rate.requests_per_unit"]
local reqs_unit = request_handle:streamInfo():dynamicMetadata():get("envoy.filters.http.header_to_metadata")["rate.unit"]
request_handle:logWarn("requests_per_unit value: " .. reqs_per_unit)
request_handle:logWarn("unit value: " .. reqs_unit)
local rate_limits = { requests_per_unit = reqs_per_unit, unit = reqs_unit}
request_handle:streamInfo():dynamicMetadata():set("envoy.filters.http.ratelimit.override", "limit", rate_limits)
local all_of_it = request_handle:streamInfo():dynamicMetadata()
request_handle:logWarn("DATA IN METADATA")
PrintTable(all_of_it)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment