elementary icon indicating copy to clipboard operation
elementary copied to clipboard

0.15 / BigQuery EDR monitor fails

Open kverburg opened this issue 9 months ago • 0 comments

Describe the bug When running EDR monitor in an environment with edr version 0.15.0 and dbt package 0.15.0 on Bigquery, the run fails on a mismatch on comparison between a TIMESTAMP and DATETIME.

To Reproduce Steps to reproduce the behavior:

  1. Set up env with both versions 0.15 on BQ.
  2. Run dbt build -s elementary to build the models
  3. Set Slack tokens and Channel.
  4. Run edr monitor --slack-token=$ELEMENTARY_SLACK_TOKEN --slack-channel-name=$ELEMENTARY_SLACK_CHANNEL
  5. Error will occur on model alerts_v2

Expected behavior A clear and concise description of what you expected to happen.

Environment (please complete the following information):

  • edr Version: 0.15.0
  • dbt package Version: 0.15.0

Additional context

Problem is in this part of the query that gets fired.

        from elementary_test_results
        where lower(status) != 'pass'
        and cast(detected_at as timestamp) > 

        datetime_add(
            cast( current_timestamp as datetime),
        interval -1 day

Timestamps and datetime are not the same in BQ, so they should be aligned.

FULL LOG:

(.venv) ➜  dbt_project git:(update-elementary) ✗ edr monitor --slack-token=$ELEMENTARY_SLACK_TOKEN --slack-channel-name=$ELEMENTARY_SLACK_CHANNEL
    ________                          __                  
   / ____/ /__  ____ ___  ___  ____  / /_____ ________  __
  / __/ / / _ \/ __ `__ \/ _ \/ __ \/ __/ __ `/ ___/ / / /
 / /___/ /  __/ / / / / /  __/ / / / /_/ /_/ / /  / /_/ / 
/_____/_/\___/_/ /_/ /_/\___/_/ /_/\__/\__,_/_/   \__, /  
                                                 /____/   

Any feedback and suggestions are welcomed! join our community here - https://bit.ly/slack-elementary

2024-05-07 10:39:46 — INFO — Running with edr=0.15.0
2024-05-07 10:39:53 — INFO — edr (0.15.0) and Elementary's dbt package (0.15.0) are compatible.
2024-05-07 10:39:56 — INFO — Elementary's database and schema: '"bigquery-project.dbt_project"'
2024-05-07 10:39:56 — INFO — Running internal dbt run to populate alerts
2024-05-07 10:39:56 — INFO — Running dbt run -m elementary_cli.alerts.alerts_v2 --project-dir /Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/elementary/monitor/dbt_project --vars {"days_back": 1}
08:39:56  Running with dbt=1.7.13
08:39:57  Registered adapter: bigquery=1.7.6
08:39:57  Unable to do partial parsing because config vars, config profile, or config target have changed
08:39:59  Found 41 models, 2 operations, 6 tests, 6 sources, 0 exposures, 0 metrics, 1440 macros, 0 groups, 0 semantic models
08:39:59  
08:40:00  
08:40:00  Running 1 on-run-start hook
08:40:00  1 of 1 START hook: elementary.on-run-start.0 ................................... [RUN]
08:40:00  1 of 1 OK hook: elementary.on-run-start.0 ...................................... [OK in 0.00s]
08:40:00  
08:40:00  Concurrency: 4 threads (target='dev')
08:40:00  
08:40:00  1 of 1 START sql incremental model dbt_project.alerts_v2 ........... [RUN]
08:40:06  BigQuery adapter: <gone>
08:40:07  1 of 1 ERROR creating sql incremental model dbt_project.alerts_v2 .. [ERROR in 6.38s]
08:40:07  
08:40:07  Running 1 on-run-end hook
08:40:07  1 of 1 START hook: elementary.on-run-end.0 ..................................... [RUN]
08:40:07  1 of 1 OK hook: elementary.on-run-end.0 ........................................ [OK in 0.00s]
08:40:07  
08:40:07  
08:40:07  Finished running 1 incremental model, 2 hooks in 0 hours 0 minutes and 7.22 seconds (7.22s).
08:40:07  
08:40:07  Completed with 1 error and 0 warnings:
08:40:07  
08:40:07    Database Error in model alerts_v2 (models/alerts/alerts_v2.sql)
  No matching signature for operator > for argument types: TIMESTAMP, DATETIME. Supported signature: ANY > ANY at [53:13]
  compiled Code at target/run/elementary_cli/models/alerts/alerts_v2.sql
08:40:07  
08:40:07  Done. PASS=0 WARN=0 ERROR=1 SKIP=0 TOTAL=1
Traceback (most recent call last):
  File "/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/elementary/clients/dbt/dbt_runner.py", line 88, in _run_command
    result = subprocess.run(
             ^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['dbt', 'run', '-m', 'elementary_cli.alerts.alerts_v2', '--project-dir', '/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/elementary/monitor/dbt_project', '--vars', '{"days_back": 1}']' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/user_name/Repos/dbt_project/.venv/bin/edr", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/elementary/cli/cli.py", line 67, in invoke
    return super().invoke(ctx)
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/click/core.py", line 1635, in invoke
    rv = super().invoke(ctx)
         ^^^^^^^^^^^^^^^^^^^
  File "/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/elementary/monitor/cli.py", line 364, in monitor
    success = data_monitoring.run_alerts(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/elementary/monitor/data_monitoring/alerts/data_monitoring_alerts.py", line 294, in run_alerts
    popopulated_data_successfully = self._populate_data(
                                    ^^^^^^^^^^^^^^^^^^^^
  File "/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/elementary/monitor/data_monitoring/alerts/data_monitoring_alerts.py", line 78, in _populate_data
    success = self.internal_dbt_runner.run(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/elementary/clients/dbt/dbt_runner.py", line 202, in run
    success, _ = self._run_command(
                 ^^^^^^^^^^^^^^^^^^
  File "/Users/user_name/Repos/dbt_project/.venv/lib/python3.11/site-packages/elementary/clients/dbt/dbt_runner.py", line 99, in _run_command
    raise DbtCommandError(err, command_args, logs=logs)
elementary.exceptions.exceptions.DbtCommandError: Failed to run dbt command.

kverburg avatar May 07 '24 08:05 kverburg