Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions src/sentry/seer/anomaly_detection/store_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
from sentry.seer.anomaly_detection.types import (
AlertInSeer,
AnomalyDetectionConfig,
DataSourceType,
StoreDataRequest,
StoreDataResponse,
TimeSeriesPoint,
Expand All @@ -29,7 +30,7 @@
translate_direction,
)
from sentry.seer.signed_seer_api import make_signed_seer_api_request
from sentry.snuba.models import SnubaQuery, SnubaQueryEventType
from sentry.snuba.models import QuerySubscription, SnubaQuery, SnubaQueryEventType
from sentry.utils import json, metrics
from sentry.utils.json import JSONDecodeError

Expand Down Expand Up @@ -191,13 +192,21 @@ def send_historical_data_to_seer(
# this won't happen because we've already gone through the serializer, but mypy insists
raise ValidationError("Missing expected configuration for a dynamic alert.")

query_subscription = QuerySubscription.objects.filter(snuba_query_id=snuba_query.id).first()
if query_subscription is None:
raise ValidationError("No QuerySubscription found for snuba query ID")

anomaly_detection_config = AnomalyDetectionConfig(
time_period=window_min,
sensitivity=alert_rule.sensitivity,
direction=translate_direction(alert_rule.threshold_type),
expected_seasonality=alert_rule.seasonality,
)
alert = AlertInSeer(id=alert_rule.id)
alert = AlertInSeer(
id=alert_rule.id,
source_id=query_subscription.id,
source_type=DataSourceType.SNUBA_QUERY_SUBSCRIPTION,
)
body = StoreDataRequest(
organization_id=alert_rule.organization.id,
project_id=project.id,
Expand Down