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

    • No
    • 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
    • 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.

    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
              Guilherme Cassolato Guilherme Cassolato
              Guilherme Cassolato Guilherme Cassolato
              Matej Dujava Matej Dujava
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: