Skip to content
This repository was archived by the owner on Jun 13, 2025. It is now read-only.

Commit 3d8af18

Browse files
authored
Add generous amounts of tracing throughout the repo (#916)
1 parent 4c7ffcc commit 3d8af18

File tree

10 files changed

+40
-0
lines changed

10 files changed

+40
-0
lines changed

api/shared/repo/repository_accessors.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import logging
22

3+
import sentry_sdk
34
from asgiref.sync import async_to_sync
45
from django.core.exceptions import ObjectDoesNotExist
56
from django.utils import timezone
@@ -30,6 +31,7 @@ def get_repo_permissions(self, user, repo):
3031
RepoProviderService().get_adapter(owner=user, repo=repo).get_authenticated
3132
)()
3233

34+
@sentry_sdk.trace
3335
def get_repo_details(
3436
self, user, repo_name, repo_owner_username, repo_owner_service
3537
):

graphql_api/actions/repository.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import logging
22
from typing import Any
33

4+
import sentry_sdk
45
from django.db.models import QuerySet
56
from shared.django_apps.codecov_auth.models import Owner
67
from shared.django_apps.core.models import Repository
@@ -30,6 +31,7 @@ def apply_filters_to_queryset(queryset, filters: dict[str, Any]) -> QuerySet:
3031
return queryset
3132

3233

34+
@sentry_sdk.trace
3335
def list_repository_for_owner(
3436
current_owner: Owner,
3537
owner: Owner,
@@ -50,6 +52,7 @@ def list_repository_for_owner(
5052
return queryset
5153

5254

55+
@sentry_sdk.trace
5356
def search_repos(
5457
current_owner: Owner,
5558
filters: dict[str, Any] | None,

graphql_api/types/bundle_analysis/base.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from datetime import datetime
33
from typing import Dict, List, Mapping, Optional, Union
44

5+
import sentry_sdk
56
from ariadne import ObjectType, convert_kwargs_to_snake_case
67
from graphql import GraphQLResolveInfo
78

@@ -136,6 +137,7 @@ def resolve_modules(
136137
return bundle_asset.modules
137138

138139

140+
@sentry_sdk.trace
139141
@bundle_asset_bindable.field("measurements")
140142
@convert_kwargs_to_snake_case
141143
@sync_to_async
@@ -178,6 +180,7 @@ def resolve_assets(
178180
return list(bundle_report.assets())
179181

180182

183+
@sentry_sdk.trace
181184
@bundle_report_bindable.field("assetsPaginated")
182185
def resolve_assets_paginated(
183186
bundle_report: BundleReport,
@@ -272,6 +275,7 @@ def resolve_bundle_report_filtered(
272275
)
273276

274277

278+
@sentry_sdk.trace
275279
@bundle_report_bindable.field("measurements")
276280
@convert_kwargs_to_snake_case
277281
@sync_to_async

graphql_api/types/commit/commit.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ def resolve_list_uploads(commit: Commit, info, **kwargs):
104104
)
105105

106106

107+
@sentry_sdk.trace
107108
@commit_bindable.field("compareWithParent")
108109
async def resolve_compare_with_parent(commit: Commit, info, **kwargs):
109110
if not commit.parent_commit_id:
@@ -273,6 +274,7 @@ def resolve_commit_bundle_analysis(commit, info):
273274
### Commit Coverage Bindable ###
274275

275276

277+
@sentry_sdk.trace
276278
@commit_coverage_analytics_bindable.field("totals")
277279
def resolve_coverage_totals(
278280
commit: Commit, info: GraphQLResolveInfo
@@ -281,12 +283,14 @@ def resolve_coverage_totals(
281283
return command.fetch_totals(commit)
282284

283285

286+
@sentry_sdk.trace
284287
@commit_coverage_analytics_bindable.field("flagNames")
285288
@sync_to_async
286289
def resolve_coverage_flags(commit: Commit, info: GraphQLResolveInfo) -> List[str]:
287290
return commit.full_report.flags.keys()
288291

289292

293+
@sentry_sdk.trace
290294
@commit_coverage_analytics_bindable.field("coverageFile")
291295
@sync_to_async
292296
def resolve_coverage_file(commit, info, path, flags=None, components=None):
@@ -315,6 +319,7 @@ def resolve_coverage_file(commit, info, path, flags=None, components=None):
315319
}
316320

317321

322+
@sentry_sdk.trace
318323
@commit_coverage_analytics_bindable.field("components")
319324
@sync_to_async
320325
def resolve_coverage_components(commit: Commit, info, filters=None) -> List[Component]:
@@ -333,6 +338,7 @@ def resolve_coverage_components(commit: Commit, info, filters=None) -> List[Comp
333338
### Commit Bundle Analysis Bindable ###
334339

335340

341+
@sentry_sdk.trace
336342
@commit_bundle_analysis_bindable.field("bundleAnalysisCompareWithParent")
337343
@sync_to_async
338344
def resolve_commit_bundle_analysis_compare_with_parent(
@@ -361,6 +367,7 @@ def resolve_commit_bundle_analysis_compare_with_parent(
361367
return bundle_analysis_comparison
362368

363369

370+
@sentry_sdk.trace
364371
@commit_bundle_analysis_bindable.field("bundleAnalysisReport")
365372
@sync_to_async
366373
def resolve_commit_bundle_analysis_report(commit: Commit, info) -> BundleAnalysisReport:

graphql_api/types/comparison/comparison.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ async def resolve_head_totals(
155155
return head_commit.commitreport.reportleveltotals
156156

157157

158+
@sentry_sdk.trace
158159
@comparison_bindable.field("patchTotals")
159160
def resolve_patch_totals(
160161
comparison: ComparisonReport, info: GraphQLResolveInfo
@@ -172,6 +173,7 @@ def resolve_patch_totals(
172173
return {**totals, "coverage": coverage}
173174

174175

176+
@sentry_sdk.trace
175177
@comparison_bindable.field("flagComparisons")
176178
@sync_to_async
177179
def resolve_flag_comparisons(
@@ -190,6 +192,7 @@ def resolve_flag_comparisons(
190192
return list(all_flags)
191193

192194

195+
@sentry_sdk.trace
193196
@comparison_bindable.field("componentComparisons")
194197
@sync_to_async
195198
def resolve_component_comparisons(

graphql_api/types/coverage_analytics/coverage_analytics.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from datetime import datetime
44
from typing import Any, Iterable, List, Mapping, Optional, Union
55

6+
import sentry_sdk
67
from ariadne import ObjectType, UnionType
78
from django.conf import settings
89
from django.forms.utils import from_current_timezone
@@ -52,6 +53,7 @@ def resolve_coverage_analytics_result_type(
5253
return None
5354

5455

56+
@sentry_sdk.trace
5557
@coverage_analytics_bindable.field("percentCovered")
5658
def resolve_percent_covered(
5759
parent: CoverageAnalyticsProps, info: GraphQLResolveInfo
@@ -116,6 +118,7 @@ async def resolve_measurements(
116118
return measurements
117119

118120

121+
@sentry_sdk.trace
119122
@coverage_analytics_bindable.field("components")
120123
@sync_to_async
121124
def resolve_components_measurements(
@@ -250,6 +253,7 @@ def resolve_components_count(
250253
return len(repo_yaml_components)
251254

252255

256+
@sentry_sdk.trace
253257
@coverage_analytics_bindable.field("flags")
254258
@sync_to_async
255259
def resolve_flags(

graphql_api/types/impacted_file/impacted_file.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ def resolve_misses_count(impacted_file: ImpactedFile, info) -> int:
131131
return impacted_file.misses_count
132132

133133

134+
@sentry_sdk.trace
134135
@impacted_file_bindable.field("isCriticalFile")
135136
@sync_to_async
136137
def resolve_is_critical_file(impacted_file: ImpactedFile, info) -> bool:

graphql_api/types/pull/pull.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from typing import Any, Optional, Union
22

3+
import sentry_sdk
34
from ariadne import ObjectType
45
from graphql import GraphQLResolveInfo
56

@@ -58,6 +59,7 @@ def is_first_pull_request(pull: Pull) -> bool:
5859
return pull.repository.pull_requests.order_by("id").first() == pull
5960

6061

62+
@sentry_sdk.trace
6163
@pull_bindable.field("compareWithBase")
6264
async def resolve_compare_with_base(
6365
pull: Pull, info: GraphQLResolveInfo, **kwargs: Any
@@ -88,6 +90,7 @@ async def resolve_compare_with_base(
8890
return ComparisonReport(commit_comparison)
8991

9092

93+
@sentry_sdk.trace
9194
@pull_bindable.field("bundleAnalysisCompareWithBase")
9295
@sync_to_async
9396
def resolve_bundle_analysis_compare_with_base(

services/bundle_analysis.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from decimal import Decimal
66
from typing import Any, Dict, Iterable, List, Optional, Union
77

8+
import sentry_sdk
89
from django.utils.functional import cached_property
910
from shared.bundle_analysis import AssetReport as SharedAssetReport
1011
from shared.bundle_analysis import (
@@ -29,6 +30,7 @@
2930
from timeseries.models import Interval, MeasurementName
3031

3132

33+
@sentry_sdk.trace
3234
def load_report(
3335
commit: Commit, report_code: Optional[str] = None
3436
) -> Optional[SharedBundleAnalysisReport]:
@@ -397,6 +399,7 @@ def __init__(
397399
self.before = before
398400
self.branch = branch
399401

402+
@sentry_sdk.trace
400403
def _compute_measurements(
401404
self, measurable_name: str, measurable_ids: List[str]
402405
) -> Dict[int, List[Dict[str, Any]]]:
@@ -437,6 +440,7 @@ def _compute_measurements(
437440

438441
return all_measurements
439442

443+
@sentry_sdk.trace
440444
def compute_asset(
441445
self, asset_report: AssetReport
442446
) -> Optional[BundleAnalysisMeasurementData]:
@@ -458,6 +462,7 @@ def compute_asset(
458462
before=self.before,
459463
)
460464

465+
@sentry_sdk.trace
461466
def compute_report(
462467
self,
463468
bundle_report: BundleReport,

timeseries/helpers.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from datetime import datetime, timedelta
33
from typing import Iterable, List, Optional
44

5+
import sentry_sdk
56
from django.conf import settings
67
from django.db import connections
78
from django.db.models import (
@@ -38,6 +39,7 @@
3839
}
3940

4041

42+
@sentry_sdk.trace
4143
def refresh_measurement_summaries(start_date: datetime, end_date: datetime) -> None:
4244
"""
4345
Refresh the measurement summaries for the given time range.
@@ -55,6 +57,7 @@ def refresh_measurement_summaries(start_date: datetime, end_date: datetime) -> N
5557
cursor.execute(sql)
5658

5759

60+
@sentry_sdk.trace
5861
def aggregate_measurements(
5962
queryset: QuerySet, group_by: Iterable[str] = None
6063
) -> QuerySet:
@@ -99,6 +102,7 @@ def _filter_repos(
99102
return queryset
100103

101104

105+
@sentry_sdk.trace
102106
def coverage_measurements(
103107
interval: Interval,
104108
start_date: Optional[datetime] = None,
@@ -190,6 +194,7 @@ def aligned_start_date(interval: Interval, date: datetime) -> datetime:
190194
return aligning_date + (intervals_before * delta)
191195

192196

197+
@sentry_sdk.trace
193198
def fill_sparse_measurements(
194199
measurements: Iterable[dict],
195200
interval: Interval,
@@ -254,6 +259,7 @@ def fill_sparse_measurements(
254259
return intervals
255260

256261

262+
@sentry_sdk.trace
257263
def coverage_fallback_query(
258264
interval: Interval,
259265
start_date: Optional[datetime] = None,
@@ -321,6 +327,7 @@ def _commits_coverage(
321327
)
322328

323329

330+
@sentry_sdk.trace
324331
def repository_coverage_measurements_with_fallback(
325332
repository: Repository,
326333
interval: Interval,
@@ -371,6 +378,7 @@ def repository_coverage_measurements_with_fallback(
371378
)
372379

373380

381+
@sentry_sdk.trace
374382
def owner_coverage_measurements_with_fallback(
375383
owner: Owner,
376384
repo_ids: Iterable[str],

0 commit comments

Comments
 (0)