fix(alerting): preserve legacy email budget dispatch

This commit is contained in:
XAVIER ALMENDROS 2026-10-04 20:19:51 +02:00
parent 57fea18005
commit 9af677fcca
2 changed files with 20 additions and 9 deletions

View file

@ -3106,11 +3106,14 @@ class ProxyLogging:
should_send_email = (self.alerting is not None and "email" in self.alerting) or is_soft_budget_with_alert_emails
if should_send_email and self.email_logging_instance is not None:
await self.email_logging_instance.budget_alerts(
type=type,
user_info=user_info,
budget_alert_thresholds=(tuple(configured_thresholds) if configured_thresholds is not None else None),
)
if configured_thresholds is None:
await self.email_logging_instance.budget_alerts(type=type, user_info=user_info)
else:
await self.email_logging_instance.budget_alerts(
type=type,
user_info=user_info,
budget_alert_thresholds=tuple(configured_thresholds),
)
async def alerting_handler(
self,

View file

@ -2627,7 +2627,9 @@ class TestProxyLoggingBudgetAlerts:
proxy_logging = ProxyLogging(user_api_key_cache=DualCache())
proxy_logging.alerting = ["slack"]
proxy_logging.slack_alerting_instance = AsyncMock()
proxy_logging.slack_alerting_instance = AsyncMock(
alerting_args=proxy_logging.slack_alerting_instance.alerting_args
)
user_info = MagicMock()
@ -2675,7 +2677,9 @@ class TestProxyLoggingBudgetAlerts:
proxy_logging = ProxyLogging(user_api_key_cache=DualCache())
proxy_logging.alerting = ["slack", "email"]
proxy_logging.slack_alerting_instance = AsyncMock()
proxy_logging.slack_alerting_instance = AsyncMock(
alerting_args=proxy_logging.slack_alerting_instance.alerting_args
)
proxy_logging.email_logging_instance = AsyncMock()
user_info = MagicMock()
@ -2708,7 +2712,9 @@ class TestProxyLoggingBudgetAlerts:
proxy_logging = ProxyLogging(user_api_key_cache=DualCache())
proxy_logging.alerting = ["slack", "email"]
proxy_logging.slack_alerting_instance = AsyncMock()
proxy_logging.slack_alerting_instance = AsyncMock(
alerting_args=proxy_logging.slack_alerting_instance.alerting_args
)
proxy_logging.email_logging_instance = AsyncMock()
user_info = MagicMock()
@ -2736,7 +2742,9 @@ class TestProxyLoggingBudgetAlerts:
proxy_logging = ProxyLogging(user_api_key_cache=DualCache())
proxy_logging.alerting = None # Global alerting is disabled
proxy_logging.slack_alerting_instance = AsyncMock()
proxy_logging.slack_alerting_instance = AsyncMock(
alerting_args=proxy_logging.slack_alerting_instance.alerting_args
)
proxy_logging.email_logging_instance = AsyncMock()
# Create CallInfo with alert_emails set (simulating team metadata extraction)