Skip to content

Rate limit data returned from API methods #606

@crpahl

Description

@crpahl

Checklist

  • I have looked into the Readme and Examples, and have not found a suitable solution or answer.
  • I have looked into the API documentation and have not found a suitable solution or answer.
  • I have searched the issues and have not found a suitable solution or answer.
  • I have searched the Auth0 Community forums and have not found a suitable solution or answer.
  • I agree to the terms within the Auth0 Code of Conduct.

Describe the problem you'd like to have solved

We're integrating with Auth0 and we would like to gather rate limit data from our calls to the Authentication and Management APIs. We have monitors for when we are rate limited, but we would like to gather metrics on the rate limit data returned from each API call. This would give us clear data points on how close we are to the rate limits as we continue to roll it out to more of our users.

Describe the ideal solution

I've partially implemented this as a proof of concept and I'd be happy to create a pull request for this if you're open to it:

  • An optional block can be given to capture the response and rate limit
  • The original methods can still be called as is making this a non-breaking change

For example, both of these are valid method calls:

# Original method still works
auth0_client.user_sessions(auth0_id)
# We could use the returned `rate_limit_info` to create Datadog metrics
auth0_client.user_sessions(auth0_id) do |response_body, rate_limit_info|
  puts "Response body: #{response_body}"
  puts "Rate limit info: #{rate_limit_info}"
end

We're considering monkey patching something like this to gather the rate limit information, but we'd much rather contribute this change if you're open to it!

Alternatives and current workarounds

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature requestA feature has been asked for or suggested by the community

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions