opentelemetry-erlang-contrib/instrumentation/opentelemetry_oban
Bryan Naegele 4d39f47b03
update elixir package deps (#126)
* update elixir package deps

* Oban test updates
2022-11-15 17:48:50 -07:00
..
lib Fix bug in OpentelemetryOban.insert_all/4 (#103) 2022-08-28 05:45:02 -06:00
test update elixir package deps (#126) 2022-11-15 17:48:50 -07:00
.formatter.exs Add opentelemetry integration to Oban (#6) 2021-12-08 08:41:36 -07:00
.gitignore Add opentelemetry integration to Oban (#6) 2021-12-08 08:41:36 -07:00
CHANGELOG.md Otel 1.0 support (#57) 2022-01-04 18:58:06 -07:00
LICENSE Add opentelemetry integration to Oban (#6) 2021-12-08 08:41:36 -07:00
README.md Otel 1.0.0-rc.4 updates (#54) 2021-12-28 16:39:06 -07:00
docker-compose.yml Otel 1.0.0-rc.4 updates (#54) 2021-12-28 16:39:06 -07:00
mix.exs Fix bug in OpentelemetryOban.insert_all/4 (#103) 2022-08-28 05:45:02 -06:00
mix.lock update elixir package deps (#126) 2022-11-15 17:48:50 -07:00

README.md

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, "~> 0.2"}
  ]
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.