From e4363bd566403e2687e2e2083658adb271e18d45 Mon Sep 17 00:00:00 2001 From: k-fish Date: Wed, 14 Jul 2021 10:25:49 -0400 Subject: [PATCH 1/2] ref(perf): Add projects tag to sdk update endpoint Having looked at some performance profiles, sdk-updates seems to be heavily affected by the number of passed projects. This will add a tag to the transaction so that it will show up in suspect tags and can be analyzed using the tag page. --- src/sentry/api/endpoints/organization_sdk_updates.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/sentry/api/endpoints/organization_sdk_updates.py b/src/sentry/api/endpoints/organization_sdk_updates.py index 5234645e9f2193..0f768116b5aa49 100644 --- a/src/sentry/api/endpoints/organization_sdk_updates.py +++ b/src/sentry/api/endpoints/organization_sdk_updates.py @@ -2,12 +2,14 @@ from distutils.version import LooseVersion from itertools import chain, groupby +import sentry_sdk from django.utils import timezone from rest_framework.response import Response from sentry.api.bases import OrganizationEventsEndpointBase from sentry.sdk_updates import SdkIndexState, SdkSetupState, get_suggested_updates from sentry.snuba import discover +from sentry.utils.numbers import format_grouped_length def by_sdk_name(sdk): @@ -63,6 +65,10 @@ def get(self, request, organization): project_ids = self.get_requested_project_ids(request) projects = self.get_projects(request, organization, project_ids) + + len_projects = len(project_ids) + sentry_sdk.set_tag("query.num_projects.grouped", format_grouped_length(len_projects)) + if len(projects) == 0: return Response([]) From 646cd3afa6eb0b5f57e82dd1a9c375e163e688d7 Mon Sep 17 00:00:00 2001 From: k-fish Date: Thu, 15 Jul 2021 09:52:06 -0400 Subject: [PATCH 2/2] Also include num_projects tag --- src/sentry/api/endpoints/organization_sdk_updates.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sentry/api/endpoints/organization_sdk_updates.py b/src/sentry/api/endpoints/organization_sdk_updates.py index 0f768116b5aa49..2255f98651a152 100644 --- a/src/sentry/api/endpoints/organization_sdk_updates.py +++ b/src/sentry/api/endpoints/organization_sdk_updates.py @@ -67,6 +67,7 @@ def get(self, request, organization): projects = self.get_projects(request, organization, project_ids) len_projects = len(project_ids) + sentry_sdk.set_tag("query.num_projects", len_projects) sentry_sdk.set_tag("query.num_projects.grouped", format_grouped_length(len_projects)) if len(projects) == 0: