View Source ErrorTracker.Integrations.Oban (ErrorTracker v0.5.0)

Integration with Oban.

How to use it

It is a plug and play integration: as long as you have Oban installed the ErrorTracker will receive and store the errors as they are reported.

How it works

It works using Oban's Telemetry events, so you don't need to modify anything on your application.

A note on errors grouping

All errors reported using :error or {:error, any()} as the output of your perform/2 worker function are going to be grouped together (one group of those of errors per worker).

The reason of that behaviour is that those errors do not generate an exception, so no stack trace is detected and they are stored as happening in the same place.

If you want errors of your workers to be grouped as you may expect on other integrations, you should raise exceptions to report errors instead of gracefully returning an error value.

Default context

By default we store some context for you on errors generated in an Oban process:

  • job.id: the unique ID of the job.

  • job.worker: the name of the worker module.

  • job.queue: the name of the queue in which the job was inserted.

  • job.args: the arguments of the job being executed.

  • job.priority: the priority of the job.

  • job.attempt: the number of attempts performed for the job.