Skip to content

Commit 138dd73

Browse files
committed
Added time limit to the alerts query
1 parent 62233dd commit 138dd73

File tree

5 files changed

+13
-5
lines changed

5 files changed

+13
-5
lines changed

monitor/data_monitoring.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from config.config import Config
55
from utils.log import get_logger
66
import json
7+
from alive_progress import alive_it
78

89
logger = get_logger(__name__)
910
FILE_DIR = os.path.dirname(__file__)
@@ -52,7 +53,8 @@ def _send_to_slack(self, alerts: [Alert]) -> None:
5253
slack_webhook = self.config.slack_notification_webhook
5354
if slack_webhook is not None:
5455
sent_alerts = []
55-
for alert in alerts:
56+
alerts_with_progress_bar = alive_it(alerts, title="Sending alerts")
57+
for alert in alerts_with_progress_bar:
5658
alert.send_to_slack(slack_webhook, self.config.is_slack_workflow)
5759
sent_alerts.append(alert.id)
5860

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{% macro get_alerts_time_limit(days_back=31) %}
2+
{% set today = dbt_utils.date_trunc('day', dbt_utils.current_timestamp()) %}
3+
{% set datetime_limit = dbt_utils.dateadd('day', days_back * -1, today) %}
4+
{{ return(elementary.cast_as_timestamp(datetime_limit)) }}
5+
{% endmacro %}

monitor/dbt_project/macros/get_new_alerts.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{% macro get_new_alerts() %}
22
-- depends_on: {{ ref('alerts') }}
3+
{% set current_date = dbt_utils.date_trunc('day', dbt_utils.current_timestamp()) %}
34
{% set select_new_alerts_query %}
45
SELECT alert_id, detected_at, database_name, schema_name, table_name, column_name, alert_type, sub_type,
56
alert_description
67
FROM {{ ref('alerts') }}
7-
WHERE alert_sent = FALSE
8+
WHERE alert_sent = FALSE and detected_at >= {{ get_alerts_time_limit() }}
89
{% endset %}
9-
1010
{% set results = run_query(select_new_alerts_query) %}
1111
{% set new_alerts = [] %}
1212
{% for result in results %}

monitor/dbt_project/macros/update_sent_alerts.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
{% if alert_ids %}
44
{% set update_sent_alerts_query %}
55
UPDATE {{ ref('alerts') }} set alert_sent = TRUE
6-
WHERE alert_id IN {{ elementary.strings_list_to_tuple(alert_ids) }} and alert_sent = FALSE
6+
WHERE alert_id IN {{ elementary.strings_list_to_tuple(alert_ids) }} and alert_sent = FALSE and
7+
detected_at >= {{ get_alerts_time_limit() }}
78
{% endset %}
89
{% set results = dbt_utils.get_query_results_as_dict(update_sent_alerts_query) %}
910
{% do elementary.edr_log(results) %}

monitor/dbt_project/packages.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
packages:
22
- package: dbt-labs/dbt_utils
3-
version: [">=0.8.0", "<0.9.0"]
3+
version: 0.7.6
44
- package: elementary-data/elementary
55
version: 0.3.11

0 commit comments

Comments
 (0)