Skip to content

Commit

Permalink
fix: metrics are no longer run in async (#357)
Browse files Browse the repository at this point in the history
Fix issue https://codecov.sentry.io/issues/5066637793

We're having RuntimeError from trying to emit metrics that think they are
in an async event loop from sync code.

These changes remove the asnyc call but keep the metrics emiting.
The metrics are now a blocking call, but impact should be minimal at this time.
  • Loading branch information
giovanni-guidini authored Apr 3, 2024
1 parent 795e3a1 commit b6b428e
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 26 deletions.
12 changes: 6 additions & 6 deletions tasks/label_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ def _get_base_report(
def calculate_final_result(
self,
*,
requested_labels: List[str],
requested_labels: Optional[List[str]],
existing_labels: ExistingLabelSetsNotEncoded,
commit_sha: str,
):
Expand All @@ -436,10 +436,10 @@ def calculate_final_result(
commit=commit_sha,
),
)
self.metrics_context.attempt_log_simple_metric(
self.metrics_context.log_simple_metric(
"label_analysis.tests_saved_count", len(all_report_labels)
)
self.metrics_context.attempt_log_simple_metric(
self.metrics_context.log_simple_metric(
"label_analysis.requests_with_requested_labels",
float(requested_labels is not None),
)
Expand All @@ -453,10 +453,10 @@ def calculate_final_result(
"absent_labels": sorted(requested_labels - all_report_labels),
"global_level_labels": sorted(global_level_labels & requested_labels),
}
self.metrics_context.attempt_log_simple_metric(
self.metrics_context.log_simple_metric(
"label_analysis.requested_labels_count", len(requested_labels)
)
self.metrics_context.attempt_log_simple_metric(
self.metrics_context.log_simple_metric(
"label_analysis.tests_to_run_count",
len(
ans["present_diff_labels"]
Expand All @@ -465,7 +465,7 @@ def calculate_final_result(
),
)
return ans
self.metrics_context.attempt_log_simple_metric(
self.metrics_context.log_simple_metric(
"label_analysis.tests_to_run_count",
len(executable_lines_labels | global_level_labels),
)
Expand Down
20 changes: 10 additions & 10 deletions tasks/tests/unit/test_label_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -511,13 +511,13 @@ def test_simple_call_without_requested_labels_then_with_requested_labels(
mock_metrics_context.assert_called_with(
repo_id=repository.repoid, commit_id=larf.head_commit.id
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.tests_saved_count", 9
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.requests_with_requested_labels", 0.0
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.tests_to_run_count", 6
)
dbsession.flush()
Expand Down Expand Up @@ -555,16 +555,16 @@ def test_simple_call_without_requested_labels_then_with_requested_labels(
mock_metrics.incr.assert_called_with(
"label_analysis_task.already_calculated.new_result"
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.tests_saved_count", 9
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.requests_with_requested_labels", 1.0
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.requested_labels_count", 4
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.tests_to_run_count", 3
)

Expand Down Expand Up @@ -618,13 +618,13 @@ def test_simple_call_with_requested_labels(
mock_metrics_context.assert_called_with(
repo_id=larf.head_commit.repository.repoid, commit_id=larf.head_commit.id
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.tests_saved_count", 9
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.requests_with_requested_labels", 1.0
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.tests_to_run_count", 3
)

Expand Down
20 changes: 10 additions & 10 deletions tasks/tests/unit/test_label_analysis_encoded_labels.py
Original file line number Diff line number Diff line change
Expand Up @@ -527,13 +527,13 @@ def test_simple_call_without_requested_labels_then_with_requested_labels(
mock_metrics_context.assert_called_with(
repo_id=repository.repoid, commit_id=larf.head_commit.id
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.tests_saved_count", 9
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.requests_with_requested_labels", 0.0
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.tests_to_run_count", 6
)
# It's zero because the report has the _labels_index already
Expand Down Expand Up @@ -575,16 +575,16 @@ def test_simple_call_without_requested_labels_then_with_requested_labels(
mock_metrics.incr.assert_called_with(
"label_analysis_task.already_calculated.new_result"
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.tests_saved_count", 9
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.requests_with_requested_labels", 1.0
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.requested_labels_count", 4
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.tests_to_run_count", 3
)

Expand Down Expand Up @@ -640,13 +640,13 @@ def test_simple_call_with_requested_labels(
mock_metrics_context.assert_called_with(
repo_id=larf.head_commit.repository.repoid, commit_id=larf.head_commit.id
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.tests_saved_count", 9
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.requests_with_requested_labels", 1.0
)
mock_metrics_context.return_value.attempt_log_simple_metric.assert_any_call(
mock_metrics_context.return_value.log_simple_metric.assert_any_call(
"label_analysis.tests_to_run_count", 3
)

Expand Down

0 comments on commit b6b428e

Please sign in to comment.