@@ -87,6 +87,17 @@ def _load_services() -> list[str]:
8787 return unique
8888
8989
90+ def _cloud_run_log_filter (service : str , since_text : str , region : str = "" ) -> str :
91+ parts = [
92+ 'resource.type="cloud_run_revision"' ,
93+ f'resource.labels.service_name="{ service } "' ,
94+ f'timestamp >= "{ since_text } "' ,
95+ ]
96+ if region :
97+ parts .append (f'resource.labels.location="{ region } "' )
98+ return " AND " .join (parts )
99+
100+
90101def _service_job_aliases (service : str ) -> list [str ]:
91102 service_name = str (service or "" ).strip ()
92103 if not service_name :
@@ -345,7 +356,26 @@ def _entry_text(entry: dict[str, Any]) -> str:
345356 return " " .join (chunks )
346357
347358
359+ def _request_path (entry : dict [str , Any ]) -> str :
360+ request_url = str ((entry .get ("httpRequest" ) or {}).get ("requestUrl" ) or "" ).strip ()
361+ if not request_url :
362+ return ""
363+ return urllib .parse .urlparse (request_url ).path
364+
365+
366+ def _is_ignorable_monitor_dispatch_capacity_warning (entry : dict [str , Any ]) -> bool :
367+ if not _env_bool ("RUNTIME_GUARD_IGNORE_MONITOR_DISPATCH_CAPACITY_WARNINGS" , True ):
368+ return False
369+ return (
370+ _status (entry ) == 429
371+ and _request_path (entry ) == "/monitor-dispatch"
372+ and "NO AVAILABLE INSTANCE" in _entry_text (entry ).upper ()
373+ )
374+
375+
348376def _is_failure (entry : dict [str , Any ]) -> bool :
377+ if _is_ignorable_monitor_dispatch_capacity_warning (entry ):
378+ return False
349379 severity = str (entry .get ("severity" ) or "" ).upper ()
350380 status = _status (entry )
351381 text = _entry_text (entry ).upper ()
@@ -491,11 +521,7 @@ def main() -> int:
491521 service_since = _cloud_run_log_since (project , service , since ) if ignore_pre_ready_logs else since
492522 service_since_by_name [service ] = service_since
493523 service_since_text = _format_timestamp (service_since )
494- log_filter = (
495- 'resource.type="cloud_run_revision" '
496- f'AND resource.labels.service_name="{ service } " '
497- f'AND timestamp >= "{ service_since_text } "'
498- )
524+ log_filter = _cloud_run_log_filter (service , service_since_text , _region_for_service (service ))
499525 try :
500526 entries = _run_gcloud_logging (project , log_filter , limit )
501527 except RuntimeError as exc :
0 commit comments