defmodule OpenTelemetry.Observer do @moduledoc """ require OpenTelemetry.Observer OpenTelemetry.Observer.set_callback(\"some.counter\", fn o -> OpenTelemetry.Observer.observe(o, 33, [])) """ defmacro set_callback(observer, callback) do quote do :ot_meter.set_observer_callback(:opentelemetry.get_meter(__MODULE__), unquote(observer), unquote(callback)) end end defdelegate observe(observer_result, number, label_set), to: :ot_observer end