Uploaded image for project: 'Red Hat 3scale API Management'
  1. Red Hat 3scale API Management
  2. THREESCALE-6491

backend api metric not synced to backend as part of the backend_rewrite_storage task

    XMLWordPrintable

Details

    • False
    • False
    • Not Started
    • Not Started
    • Not Started
    • Not Started
    • Not Started
    • Not Started
    • No
    • Undefined
    • Workaround Exists
    • Hide
      1. Remove backend api from affected product(s)
      2. Add back the backend api to the affected product(s)

      This is a laborious and manual process.

      The alternative is to restore backend-redis from a backup but this means frequent backups need to be taken.

      Show
      Remove backend api from affected product(s) Add back the backend api to the affected product(s) This is a laborious and manual process. The alternative is to restore backend-redis from a backup but this means frequent backups need to be taken.
    • Hide
      1. Create a Product and backend api object and link them.
      2. Create a BackendApi mapping rule and configure the proxy so that a request will hit the backend rule
      3. Promote the proxy config to staging and test an API request to verify required keys are present in backend
      4. Via redis-cli delete the metric which belongs to the backend api. System_name should be in the format hits.id
      5. Test an api request to ensure a 403 is returned (you might need to try more than once due to caching in APIcast)
      6. Check backend-listener logs for the error message metric_invalid
      7. oc exec system-sidekiq bundle exec rake backend:storage:enqueue_rewrite
      8. Monitor sidekiq logs to see jobs processed
      9. Via redis-cli verify the metric still has not been resynced
      10. Test an api request and see the expected error
      Show
      Create a Product and backend api object and link them. Create a BackendApi mapping rule and configure the proxy so that a request will hit the backend rule Promote the proxy config to staging and test an API request to verify required keys are present in backend Via redis-cli delete the metric which belongs to the backend api. System_name should be in the format hits.id Test an api request to ensure a 403 is returned (you might need to try more than once due to caching in APIcast) Check backend-listener logs for the error message metric_invalid oc exec system-sidekiq bundle exec rake backend:storage:enqueue_rewrite Monitor sidekiq logs to see jobs processed Via redis-cli verify the metric still has not been resynced Test an api request and see the expected error

    Description

      Current behaviour

      When backend redis data has been purged and needs to be resynced via the backend_rewrite_storage_worker the metrics which belong to the backend api object are not written even though they should be according to the rewrite_provider function.

      Expected behaviour

      All data that backend needs to know about should be resynced correctly and fully via the backend_storage_rewrite_worker.

      Open Questions

      • Do we use this rake task in SaaS? If not then is there a best practice or set of steps we can document to guide customers?
      • When should this rake task be preferred to relying on a Redis backup?

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              rhn-support-keprice Kevin Price
              Matej Dujava Matej Dujava
              Guilherme Cassolato Guilherme Cassolato
              Guilherme Cassolato Guilherme Cassolato
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: