From 1fa1241b0851f2fe04b8b1190c572783d5bf3e90 Mon Sep 17 00:00:00 2001 From: Kev Date: Tue, 6 Feb 2024 09:14:20 -0500 Subject: [PATCH 1/2] feat(metrics-extraction): Add condition to update on-demand row This will cause the row to always be updated, which fixes the trouble with all the widget queries date modified being set to when the migration ran (Feb 5th) despite them likely being older than an on demand row --- src/sentry/options/defaults.py | 6 ++++++ src/sentry/tasks/on_demand_metrics.py | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/sentry/options/defaults.py b/src/sentry/options/defaults.py index df3ae71a9314de..3eccbc67e4b695 100644 --- a/src/sentry/options/defaults.py +++ b/src/sentry/options/defaults.py @@ -1702,6 +1702,12 @@ default=False, flags=FLAG_AUTOMATOR_MODIFIABLE, ) +# Overrides modified date and always updates the row. Can be removed if not needed later. +register( + "on_demand.update_on_demand_modified", + default=False, + flags=FLAG_AUTOMATOR_MODIFIABLE, +) register( "delightful_metrics.minimetrics_sample_rate", diff --git a/src/sentry/tasks/on_demand_metrics.py b/src/sentry/tasks/on_demand_metrics.py index f0aceeb0a4d7a6..161119b2ccd1b2 100644 --- a/src/sentry/tasks/on_demand_metrics.py +++ b/src/sentry/tasks/on_demand_metrics.py @@ -2,6 +2,7 @@ import logging from collections.abc import Sequence +from datetime import timezone from typing import Any import sentry_sdk @@ -295,6 +296,11 @@ def _set_widget_on_demand_state( if on_demand.can_extraction_be_auto_overridden(): on_demand.extraction_state = extraction_state + if options.get("on_demand.update_on_demand_modified"): + # Only temporarily required to check we've updated data on rows the task has passed + # Or updated to pass the check against widget query date_modified. + on_demand.date_modified = timezone.now() + on_demand.spec_hashes = spec_hashes on_demand.save() From 7278f0ccc130070c1b62c134d3d815eb122d56de Mon Sep 17 00:00:00 2001 From: Kev Date: Tue, 6 Feb 2024 09:19:15 -0500 Subject: [PATCH 2/2] Wrong tz import --- src/sentry/tasks/on_demand_metrics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentry/tasks/on_demand_metrics.py b/src/sentry/tasks/on_demand_metrics.py index 161119b2ccd1b2..ec652c08fc002b 100644 --- a/src/sentry/tasks/on_demand_metrics.py +++ b/src/sentry/tasks/on_demand_metrics.py @@ -2,11 +2,11 @@ import logging from collections.abc import Sequence -from datetime import timezone from typing import Any import sentry_sdk from celery.exceptions import SoftTimeLimitExceeded +from django.utils import timezone from sentry import options from sentry.api.utils import get_date_range_from_params