[Feature flag] Rollout of `api_caching_merge_requests`

Feature

Related !61067 (merged)

This feature uses the :api_caching_merge_requests feature flag!

Owners

Stakeholders

The Rollout Plan

  • Partial Rollout on GitLab.com with beta groups
  • Percentage Rollout on GitLab.com
  • Rollout Feature for everyone as soon as it's ready

https://dashboards.gitlab.net/d/api-rails-controller/api-rails-controller?orgId=1&var-PROMETHEUS_DS=Global&var-environment=gprd&var-stage=main&var-controller=Grape&var-action=GET%20%2Fapi%2Fprojects%2F:id%2Fmerge_requests

Beta Groups/Projects:

  • gitlab-org/gitlab project

Expectations

What are we expecting to happen?

Response times for the merge requests list API should go down

What might happen if this goes wrong?

  • Response times for the merge requests list API could go up

What can we monitor to detect problems with this?

https://dashboards.gitlab.net/d/api-rails-controller/api-rails-controller?orgId=1&var-PROMETHEUS_DS=Global&var-environment=gprd&var-stage=main&var-controller=Grape&var-action=GET%20%2Fapi%2Fprojects%2F:id%2Fmerge_requests

Rollout Timeline

Rollout Steps

Preparation Phase

  • Enable on staging (/chatops run feature set feature_name true --staging)

  • Test on staging

  • Announce on the issue an estimated time this will be enabled on GitLab.com

  • Check if the feature flag change needs to be accompanied with a change management issue. Cross link the issue here if it does.

  • Ensure that you or a representative in development can be available for at least 2 hours after feature flag updates in production. If a different developer will be covering, or an exception is needed, please inform the oncall SRE by using the @sre-oncall Slack alias.

Partial Rollout Phase

  • Enable on GitLab.com for individual groups/projects listed above and verify behaviour (/chatops run feature set --project=gitlab-org/gitlab api_caching_merge_requests true)

  • Verify behaviour (See Beta Groups) and add details with screenshots as a comment on this issue

  • If it is possible to perform an incremental rollout, this should be preferred. Proposed increments are: 10%, 50%, 100%. Proposed minimum time between increments is 15 minutes.

    • When setting percentages, make sure that the feature works correctly between feature checks. See #327117 (closed) for more information
    • For actor-based rollout: /chatops run feature set api_caching_merge_requests 10 --actors
    • For time-based rollout: /chatops run feature set api_caching_merge_requests 10

Full Rollout Phase

  • Make the feature flag enabled by default i.e. Change default_enabled to true

  • Cross post chatops slack command to #support_gitlab-com (more guidance when this is necessary in the dev docs) and in your team channel

  • Announce on the issue that the flag has been enabled

  • Create a cleanup issue using the "Feature Flag Removal" template

Rollback Steps

  • This feature can be disabled by running the following Chatops command:
/chatops run feature set api_caching_merge_requests false
Edited by Robert May