View Source ErrorTracker.Plugins.Pruner (ErrorTracker v0.5.0)
Periodically delete resolved errors based on their age.
Pruning allows you to keep your database size under control by removing old errors that are not needed anymore.
Using the pruner
To enable the pruner you must register the plugin in the ErrorTracker configuration. This will use the default options, which is to prune errors resolved after 24 hours.
config :error_tracker,
plugins: [ErrorTracker.Plugins.Pruner]
You can override the default options by passing them as an argument when registering the plugin.
config :error_tracker,
plugins: [{ErrorTracker.Plugins.Pruner, max_age: :timer.minutes(30)}]
Options
:limit
- the maximum number of errors to prune on each execution. Occurrences are removed along the errors. The default is 200 to prevent timeouts and unnecesary database load.:max_age
- the number of milliseconds after a resolved error may be pruned. The default is 24 hours.:interval
- the interval in milliseconds between pruning runs. The default is 30 minutes.
You may find the :timer
module functions useful to pass readable values to the :max_age
and
:interval
options.
Manual pruning
In certain cases you may prefer to run the pruner manually. This can be done by calling the
prune_errors/2
function from your application code. This function supports the :limit
and
:max_age
options as described above.
For example, you may call this function from an Oban worker so you can leverage Oban's cron capabilities and have a more granular control over when pruning is run.
defmodule MyApp.ErrorPruner do
use Oban.Job
def perform(%Job{}) do
ErrorTracker.Plugins.Pruner.prune_errors(limit: 10_000, max_age: :timer.minutes(60))
end
end
Summary
Functions
Returns a specification to start this module under a supervisor.
See Supervisor
.
@spec prune_errors(keyword()) :: {:ok, [ErrorTracker.Error.t()]}
Prunes resolved errors.
You do not need to use this function if you activate the Pruner plugin. This function is exposed only for advanced use cases and Oban integration.
Options
:limit
- the maximum number of errors to prune on each execution. Occurrences are removed along the errors. The default is 200 to prevent timeouts and unnecesary database load.:max_age
- the number of milliseconds after a resolved error may be pruned. The default is 24 hours. You may find the:timer
module functions useful to pass readable values to this option.