Commit Graph

18 Commits

Author SHA1 Message Date
GitLab Bot d6348d22dd Add latest changes from gitlab-org/gitlab@master 2020-06-24 09:08:32 +00:00
GitLab Bot b64a8161c9 Add latest changes from gitlab-org/gitlab@master 2020-05-29 18:08:26 +00:00
GitLab Bot f098e6d3d2 Add latest changes from gitlab-org/gitlab@master 2020-04-06 03:09:23 +00:00
GitLab Bot ae4ef81757 Add latest changes from gitlab-org/gitlab@master 2020-03-20 18:09:31 +00:00
GitLab Bot 196ada0844 Add latest changes from gitlab-org/gitlab@master 2020-03-20 09:09:22 +00:00
GitLab Bot 652bd07373 Add latest changes from gitlab-org/gitlab@master 2020-03-19 12:09:33 +00:00
GitLab Bot 4fe93274de Add latest changes from gitlab-org/gitlab@master 2020-03-04 00:07:52 +00:00
GitLab Bot 66d4203791 Add latest changes from gitlab-org/gitlab@master 2020-02-26 09:08:47 +00:00
GitLab Bot c8f773a859 Add latest changes from gitlab-org/gitlab@master 2020-01-30 21:08:47 +00:00
charlieablett 675c9b9f6b Address reviewer comments
- Remove Gitaly call check for fields that have a constant complexity
declared
- Add associated test
2019-07-05 10:18:50 +12:00
charlieablett cf1b0d10bc Address reviewer comments
- Add 1 for all fields that call Gitaly (with resolvers or without)
- Clarify comment regarding Gitaly call alert
- Expose predicate `calls_gitaly?` instead of ivar
2019-07-03 22:53:13 +12:00
charlieablett f4890d9078 Alert if `calls_gitaly` declaration missing
- Move `calls_gitaly_check` to public
- Add instrumentation for flagging missing CallsGitaly declarations
- Wrap resolver proc in before-and-after Gitaly counts to get the net
Gitaly call count for the resolver.
2019-07-03 22:53:13 +12:00
charlieablett c99c30fdd6 Remove potentially noisy warning
- If Gitaly calls are missing, it could be due to a conditional and
may just become noise
2019-07-03 22:53:13 +12:00
charlieablett 8b809837f4 Enumerate fields with Gitaly calls
- Add a complexity of 1 if Gitaly is called at least once
 - Add an error notification if `calls_gitaly` isn't right for a
 particular field
2019-07-03 22:53:13 +12:00
Brett Walker 95b3fe2863 Use :complexity_multiplier only with connections
This helps reduce complexity for non-connections
2019-06-05 10:17:54 -05:00
Brett Walker 1285b00517 Added common fields to the IssueType
and allow passing of child_complexity to the
'resolver_complexity' metho
2019-05-31 13:19:29 -05:00
Jan Provaznik 5ee7884d91 GraphQL - Add extra complexity for resolvers
If a field is a resolver, its complexity is automatically
increased. By default we add extra points for sort and search
arguments (which will be common for various resolvers).

For specific resolvers we add field-specific complexity, e.g.
for Issues complexity is increased if we filter issues by `labelName`
(because then SQL query is more complex). We may want to tune these
values in future depending on real-life results.

Complexity is also dependent on the number of loaded nodes, but only
if we don't search by specific ID(s). Also added complexity is limited
(by default only twice more than child complexity) - the reason is
that although it's more complex to process more items, the complexity
increase is not linear (there is not so much difference between loading
10, 20 or 100 records from DB).
2019-05-06 21:24:19 +00:00
Brett Walker f458c56107 Initial field and query complexity limits
It makes all Types::BaseField default to a complexity of 1.

Queries themselves now have limited complexity, scaled
to the type of user: no user, authenticated user, or an
admin user.
2019-04-04 08:39:30 -05:00