Container Registry: Define custom apdex SLI for storage actions
Context
This is part of &476 and a followup from gitlab-org/gitlab#359954 (comment 936415903).
Problem
Right now we have a single registry_storage_action_seconds_bucket
apdex SLI, which doesn't distinguish between storage operations (delete, list, etc.). As result, this is far from accurate as we have to level all operations by the slowest performing one.
Solution
Break down the storage apdex SLI per operation. To do so we can filter by operation using the action
label on the registry_storage_action_seconds_bucket
Prometheus metric. The value of this label can be one of Delete
, Move
, PutContent
, GetContent
, List
, Stat
and URLFor
. It might be overwhelming to have one SLI per action, but we should at least separate writes from reads and deletes (the Delete
is currently the worst performer by a solid distance, so separating it is key).