Skip to content

Update Plan API Urgencies

What does this MR do and why?

Updates urgency on a number of Plan endpoints based on a review of impact. Justification for each is given below.

Urgency Lowered

These endpoints have been identified as breaching their target duration but the said target being inappropriate. Endpoints that breach but are appropriate for improvement (predominantly GraphQL-related) are the subject of a Working Group effort.

Caller ID Previous Target New Target Why?
GET /api/:version/groups/:id/epics/:epic_iid 1s 5s Legacy Work Item REST API endpoints are not a priority, intended to be eclipsed by the GraphQL Work Items API. A Working Group has been stood up to specifically address performance of the Work Items API is the priority. Main users are automations that run through the weekend and disproportionately spend error budget.
GET /api/:version/groups/:id/epics 1s 5s High cardinality. Legacy Work Item REST API endpoints are not a priority, intended to be eclipsed by the GraphQL Work Items API. Working Group stood up to specifically address performance of the Work Items API is the priority. Main users are automations that run through the weekend and disproportionately spend error budget.
GET /api/:version/projects/:id/issues/:noteable_id/notes 1s 5s Merge Request notes are already low urgency, I'm not sure why Issues are excluded when the performance will be similar for both and there's a good chance of a similar root cause. The impact for the user is low with a REST endpoint. We should give notes performance some attention but it's not the immediate priority.
PUT /api/:version/projects/:id/issues/:noteable_id/notes/:note_id 1s 5s As above. This endpoint is excluded for Merge Requests but not Issues.

Urgency Raised

A large number of endpoints have been identified as performing better than the target duration of the next urgency level, with 100% consistency. Where possible, we should lock in this improvement by raising the urgency. Effectively this makes this performance level a requirement into the future.

Caller ID Previous Target New Target Why?
Projects::IterationsController#index 5s 1s Endpoint executes 100% of the time in less than 1s. Iterations are important for the future of our planning tools so we should lock in the improvement.
Projects::IterationsController#show 5s 1s Endpoint executes 100% of the time in less than 1s. Iterations are important for the future of our planning tools so we should lock in the improvement.
Groups::IterationsController#index 5s 1s Endpoint executes 100% of the time in less than 1s. Iterations are important for the future of our planning tools so we should lock in the improvement.
Groups::IterationsController#show 5s 1s Endpoint executes 100% of the time in less than 1s. Iterations are important for the future of our planning tools so we should lock in the improvement.
Groups::UploadsController#show 5s 1s Urgency was lowered years ago under different ownership. Endpoint executed 100% of the time in less than 1s.
Projects::IssuesController#create 5s 1s Endpoint executes 100% of the time in less than 1s.
Projects::IssuesController#edit 5s 1s Endpoint executes 100% of the time in less than 1s.
Projects::IssuesController#destroy 5s 1s Endpoint executes 100% of the time in less than 1s.

References

Screenshots or screen recordings

Before After

How to set up and validate locally

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by John Hope

Merge request reports

Loading