Understanding Timestamp Fields and Signal Search in Scheduled Rules
Last updated: February 6, 2025
Issue
When using scheduled rules in Panther, signals from scheduled queries may not appear in the signal search results, even when the query is returning data and the rule logic is working correctly. This is particularly noticeable when the scheduled query processes historical data or has a large lookback window.
Resolution
To properly view signals from scheduled rules:
Use the
Data Explorerto search for signalsFilter using the
p_alert_update_timefield instead of the default timestamp fields
Cause
This behavior occurs due to how timestamp fields are handled in scheduled rules. Here's how the different timestamp fields work:
p_alert_update_time- Set when the signal (or rule match) is createdp_alert_creation_time- Marks the beginning of the deduplication period for the rule, i.e. when the first signal in that deduplication period was createdp_event_time- Provided by the original log. For scheduled queries, the query may not retrieve this field (or may query a table that doesn't have this field), in which case it will be populated by default top_alert_update_timep_parse_time- When the log is ingested into Panther. For scheduled queries, the query may not retrieve this field (or may query a table that doesn't have this field), in which case it will be populated by default top_alert_update_time
Additional context about the alert timestamps can be found in the corresponding section from our documentation.
By default, signal searches look for events within specific bounds of p_event_time. While this works well for real-time/streaming rules, events from scheduled queries that process historical data may fall outside these bounds and won't appear in the default search results. Using p_alert_update_time ensures you can find all signals when they are created, regardless of the original event time.