-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: document clean up steps for scheduled triggers
hasura/graphql-engine-mono#2077 Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com> GitOrigin-RevId: 7f4fae1
- Loading branch information
1 parent
e0fd67e
commit eaf0211
Showing
4 changed files
with
162 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
.. meta:: | ||
:description: Clean up event data of scheduled triggers in Hasura | ||
:keywords: hasura, docs, scheduled triggers, cron triggers, scheduled events, clean up, purge logs | ||
|
||
.. _clean_up_scheduled_triggers_data: | ||
|
||
Clean up scheduled triggers data | ||
================================ | ||
|
||
.. contents:: Table of contents | ||
:backlinks: none | ||
:depth: 1 | ||
:local: | ||
|
||
Introduction | ||
------------ | ||
|
||
Hasura stores event data associated with scheduled triggers in **the `hdb_catalog` schema of the Hasura metadata | ||
database**. | ||
|
||
If there are lots of events, the events tables can get huge and you may want to prune them. | ||
You can use any of the following options to prune your event data depending on your need. | ||
|
||
Tables involved | ||
--------------- | ||
|
||
Cron triggers have two tables managed by Hasura: | ||
|
||
1. ``hdb_catalog.hdb_cron_events``: Table that stores all the cron events. | ||
2. ``hdb_catalog.hdb_cron_event_invocation_logs``: Table that stores all the HTTP requests and their responses of the cron events invocations. | ||
|
||
Similarly, scheduled events also have two tables managed by Hasura: | ||
|
||
1. ``hdb_catalog.hdb_scheduled_events``: Table that stores all the scheduled events. | ||
2. ``hdb_catalog.hdb_scheduled_event_invocation_logs``: Table that stores all the HTTP requests and their responses of the scheduled events invocations. | ||
|
||
Option 1: Clear only HTTP logs | ||
------------------------------ | ||
|
||
1. Cron event invocation logs | ||
|
||
.. code-block:: SQL | ||
DELETE FROM hdb_catalog.hdb_cron_event_invocation_logs; | ||
2. Scheduled event invocation logs | ||
|
||
.. code-block:: SQL | ||
DELETE FROM hdb_catalog.hdb_scheduled_event_invocation_logs; | ||
Option 2: Clear processed events | ||
-------------------------------- | ||
|
||
1. Cron events | ||
|
||
.. code-block:: SQL | ||
DELETE FROM hdb_catalog.hdb_cron_events | ||
WHERE status IN ('delivered', 'error', 'dead'); | ||
2. Scheduled events | ||
|
||
.. code-block:: SQL | ||
DELETE FROM hdb_catalog.hdb_scheduled_events | ||
WHERE status IN ('delivered', 'error', 'dead'); | ||
.. note:: | ||
|
||
Deleting a cron/scheduled event will also delete the invocations related to that event. | ||
|
||
.. admonition:: Warning | ||
|
||
The below options will clear all events including yet to be delivered events. | ||
If the cron trigger exists in the metadata, then new events will be generated automatically | ||
by the graphql-engine, but this step can take upto a minute. | ||
|
||
Option 3: Clear all data for a particular cron trigger only | ||
----------------------------------------------------------- | ||
|
||
.. code-block:: SQL | ||
DELETE FROM hdb_catalog.hdb_cron_events | ||
WHERE trigger_name = '<trigger_name>'; | ||
Option 4: Clear everything | ||
-------------------------- | ||
|
||
1. Cron triggers | ||
|
||
.. code-block:: SQL | ||
DELETE FROM hdb_catalog.hdb_cron_events; | ||
2. Scheduled events | ||
|
||
.. code-block:: SQL | ||
DELETE FROM hdb_catalog.hdb_scheduled_events; | ||
Clearing data before a particular time period | ||
--------------------------------------------- | ||
|
||
If you wish to keep recent data and only clear data before a particular time period | ||
you can add the following time clause to your query's where clause: | ||
|
||
.. code-block:: SQL | ||
-- units can be 'minutes', 'hours', 'days', 'months', 'years' | ||
created_at < now() - interval '<x> <units>' | ||
For example: to delete all processed events and HTTP logs older than 3 months: | ||
|
||
1. Cron triggers | ||
|
||
.. code-block:: SQL | ||
DELETE FROM hdb_catalog.hdb_cron_events | ||
WHERE status IN ('delivered', 'error', 'dead') | ||
AND created_at < now() - interval '3 months'; | ||
2. Scheduled events | ||
|
||
.. code-block:: SQL | ||
DELETE FROM hdb_catalog.hdb_scheduled_events | ||
WHERE status IN ('delivered', 'error', 'dead') | ||
AND created_at < now() - interval '3 months'; | ||
See the `Postgres date/time functions <https://www.postgresql.org/docs/current/functions-datetime.html>`__ | ||
for more details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -41,3 +41,4 @@ There are two types of timed events: | |
|
||
create-cron-trigger | ||
create-one-off-scheduled-event | ||
clean-up |