For each request, track a "hit" on the gql endpoint with a status label containing
- "success" - if the request was handled and there are no errors
- "error" - if the response contains no data and there are errors
- "partial_success" - if the response contains data and there were errors. Containing data can also mean returning just "data": { "item": null } if the requested item does not exist.
For every unique error type, we also increment a counter metric including the error code corresponding to the error type.