lib/opentelemetry_quantum.ex

defmodule OpentelemetryQuantum do
  @moduledoc """
  OpentelemetryQuantum uses [telemetry](https://hexdocs.pm/telemetry/) handlers
  to create `OpenTelemetry` spans from [Quantum](https://hexdocs.pm/quantum/)
  jobs.

  It supports job start, stop and exception events.

  ## Usage

  In your application start:

  ```
  def start(_type, _args) do
    :ok = OpentelemetryQuantum.setup()

    # ...
  end
  """

  alias OpentelemetryQuantum.JobHandler

  @doc """
  Attaches the telemetry handlers, returning `:ok` if successful.
  """
  @spec setup :: :ok
  def setup() do
    :ok = JobHandler.attach()
  end
end