Skip to content

Commit 650483e

Browse files
authored
Feature/Events: Add internal log messages (#11579)
1 parent 81579d8 commit 650483e

File tree

1 file changed

+49
-5
lines changed

1 file changed

+49
-5
lines changed

localstack-core/localstack/services/events/provider.py

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1342,6 +1342,7 @@ def _process_entry(
13421342
if event_failed_validation := validate_event(entry):
13431343
processed_entries.append(event_failed_validation)
13441344
failed_entry_count["count"] += 1
1345+
LOG.info(json.dumps(event_failed_validation))
13451346
return
13461347
region, account_id = extract_region_and_account_id(event_bus_name_or_arn, context)
13471348
if encoded_trace_header := get_trace_header_encoded_region_account(
@@ -1355,19 +1356,36 @@ def _process_entry(
13551356
except ResourceNotFoundException:
13561357
# ignore events for non-existing event buses but add processed event
13571358
processed_entries.append({"EventId": event_formatted["id"]})
1359+
LOG.info(
1360+
json.dumps(
1361+
{
1362+
"ErrorCode": "ResourceNotFoundException at get_event_bus",
1363+
"ErrorMessage": f"Event_bus {event_bus_name} does not exist",
1364+
}
1365+
)
1366+
)
13581367
return
13591368
self._proxy_capture_input_event(event_formatted)
1360-
matching_rules = [rule for rule in event_bus.rules.values()]
1361-
for rule in matching_rules:
1362-
self._process_matched_rules(
1363-
rule, region, account_id, event_formatted, processed_entries, failed_entry_count
1369+
if configured_rules := list(event_bus.rules.values()):
1370+
for rule in configured_rules:
1371+
self._process_rules(
1372+
rule, region, account_id, event_formatted, processed_entries, failed_entry_count
1373+
)
1374+
else:
1375+
LOG.info(
1376+
json.dumps(
1377+
{
1378+
"InfoCode": "InternalInfoEvents at process_rules",
1379+
"InfoMessage": f"No rules attached to event_bus: {event_bus_name}",
1380+
}
1381+
)
13641382
)
13651383

13661384
def _proxy_capture_input_event(self, event: FormattedEvent) -> None:
13671385
# only required for eventstudio to capture input event if no rule is configured
13681386
pass
13691387

1370-
def _process_matched_rules(
1388+
def _process_rules(
13711389
self,
13721390
rule: Rule,
13731391
region: str,
@@ -1379,6 +1397,15 @@ def _process_matched_rules(
13791397
event_pattern = rule.event_pattern
13801398
event_str = to_json_str(event_formatted)
13811399
if matches_rule(event_str, event_pattern):
1400+
if not rule.targets:
1401+
LOG.info(
1402+
json.dumps(
1403+
{
1404+
"InfoCode": "InternalInfoEvents at iterate over targets",
1405+
"InfoMessage": f"No target configured for matched rule: {rule}",
1406+
}
1407+
)
1408+
)
13821409
for target in rule.targets.values():
13831410
target_arn = target["Arn"]
13841411
if is_archive_arn(target_arn):
@@ -1401,3 +1428,20 @@ def _process_matched_rules(
14011428
}
14021429
)
14031430
failed_entry_count["count"] += 1
1431+
LOG.info(
1432+
json.dumps(
1433+
{
1434+
"ErrorCode": "InternalException at process_entries",
1435+
"ErrorMessage": str(error),
1436+
}
1437+
)
1438+
)
1439+
else:
1440+
LOG.info(
1441+
json.dumps(
1442+
{
1443+
"InfoCode": "InternalInfoEvents at matches_rule",
1444+
"InfoMessage": f"No rules matched for formatted event: {event_formatted}",
1445+
}
1446+
)
1447+
)

0 commit comments

Comments
 (0)