Global GitLab API Observability
## Overview As identified in ~"WorkingGroup::API", prioritization of observability tools for all GitLab APIs (REST, GraphQL, and Webhooks) will give us insight into areas that most need improvement. There are many ways we can leverage observability data to guide our planning. For example, we could evaluate `Feature Parity` to identify gaps/inconsistencies between GraphQL, REST, and Webhooks. And we could compare usage/performance/error rate data to prioritize what features require the most attention/improvement. Below is a very high level example to iterate off of: | Feature | GraphQL Endpoint | REST Endpoint | Webhook | GraphQL Endpoint Usage | REST Endpoint Usage | Webhook Usage | GraphQL Performance | REST Performance | Webhook Performance | |---|---|---|---|---|---|---|---|---|---| | ex. Get Projects | GET /projects | Query.projects | X (not available) | 1234567 | 123456 | - | Green | Yellow | - | | | | | | | | | | | | | | | | | | | | | | | \* _This chart could be expanded to include error rates/budgets, some rating around documentation per Feature, test coverage, etc._ ## Data Points to Capture with Observability Tools * Usage by Endpoint / Field * Usage of Deprecated Endpoints / Fields * Usage Segmentation (by Customer, by Business Size, by Product Tier, by Persona) * Performance * Security Analysis * Error Rates/Budgets * Documentation Rating/Robustness * Test Coverage We may capture these today completely, or partially. But by establishing a list we can evaluate the completeness of the data/tools and identify any gaps. ## API Observability Tools Gap Analysis | | REST | GraphQL | Webhooks | |-------------------------------------|-----------|------------------------------------------------------------------------------------------------------|----------| | docs.gitlab.com Monitoring Page |   |[Docs](https://docs.gitlab.com/ee/development/graphql_guide/monitoring.html#monitoring-graphql) | | | Monitoring How-to Video |   |[Video](https://www.youtube.com/watch?v=5oF2rJPAZ-M) | | | Kibana Support     |  |     ✅                       |    | | Grafana Support     |   |                          |   | ## API Observability Tools - Additional Resources - https://about.gitlab.com/handbook/support/workflows/kibana.html Let's build on the discussion from ~"WorkingGroup::API" and break down tasks to get started on this topic: - [ ] Identify what Observability tools we already have in place and how they might be leveraged by our group. - [ ] Identify gaps in our Observability tooling we can address. - [ ] ... - [ ] ... Note: There are related issues tied to the GraphQL Blueprint. We should probably determine how these efforts merge or diverge with ~"WorkingGroup::API" so we know how to organize the issues. For example: * https://gitlab.com/groups/gitlab-org/-/epics/5321 ## Helpful Links - https://about.gitlab.com/handbook/support/workflows/kibana.html - https://docs.gitlab.com/ee/development/graphql_guide/monitoring.html#monitoring-graphql -
epic