renovate[bot] e4fc50d5e5
chore(deps): update postgres docker tag to v16 (#242)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bryan Naegele <bryannaegele@users.noreply.github.com>
2023-11-15 11:14:43 -07:00
..
2022-12-14 16:48:27 -07:00
2022-11-16 19:07:23 -07:00
2023-11-09 16:53:32 -07:00

OpentelemetryOban

OpentelemetryOban uses telemetry handlers to create OpenTelemetry spans from Oban events.

Installation

The package can be installed by adding opentelemetry_oban to your list of dependencies in mix.exs:

def deps do
  [
    {:opentelemetry_oban, "~> 1.0"}
  ]
end

In your application start:

    def start(_type, _args) do
      OpentelemetryOban.setup()

      # ...
    end

Usage

By default a new trace is automatically started when a job is processed.

To also record a span when a job is created and to link traces together Oban.insert/2 has to be replaced by OpentelemetryOban.insert/2.

Before:

  %{id: 1, in_the: "business", of_doing: "business"}
  |> MyApp.Business.new()
  |> Oban.insert()

After:

  %{id: 1, in_the: "business", of_doing: "business"}
  |> MyApp.Business.new()
  |> OpentelemetryOban.insert()

Oban also supports inserting jobs using Oban.insert/4, Oban.insert_all/2 and Oban.insert_all/4. These are currently not supported by OpentelemetryOban and are just proxied through to Oban.