Set Custom SLIs for Web and API endpoints on Testing
##Context
Following the steps from gitlab-com/gl-infra/scalability#1315 (closed), identify the endpoints owned by grouptesting that would require a latency target > 1 second, and set a new target duration for those endpoints.
Web/API Endpoints identified that require custom targets
Endpoint | New target duration | Custom SLI set? |
---|---|---|
GET /api/projects/:id/pipelines/:pipeline_id/test_report |
5 seconds | |
POST /api/jobs/:id/artifacts |
5 seconds | |
GET /api/projects/:id/jobs/artifacts/:ref_name/raw/*artifact_path |
5 seconds | |
GraphqlController#execute |
3.5 seconds | not supported |
POST /api/jobs/:id/artifacts/authorize |
3.5 seconds | |
GET /api/jobs/:id/artifacts |
2.5 seconds |
Note that the goal for completing this exercise is by Dec 1 2021.
Steps
-
1. Locate all CI jobs REST API and controller endpoints - For now, using the Elastic dashboard is the easiest way to get to the list of endpoints. As written in the documentation. So from the Stage Group Dashboard, in the error budget attribution row, follow the "Puma Apdex" link to see a list of endpoints and the duration targets they meet or exceed.
-
2. Select a target duration for each endpoint by consulting the duration table and following the steps for determining a custom duration -
3. Where the duration we want differs from the default (1 second), add a custom target duration to the endpoint. Involve a Scalability team member in the review
Edited by Albert