Skip to content

Commit c8e41ea

Browse files
committed
fix: passing custom oban attributes to span
1 parent 8af382e commit c8e41ea

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

instrumentation/opentelemetry_oban/lib/opentelemetry_oban/plugin_handler.ex

+24-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
defmodule OpentelemetryOban.PluginHandler do
2+
require OpenTelemetry.Tracer, as: Tracer
3+
24
alias OpenTelemetry.Span
35

46
@tracer_id __MODULE__
@@ -41,11 +43,12 @@ defmodule OpentelemetryOban.PluginHandler do
4143
@tracer_id,
4244
"#{plugin} process",
4345
metadata,
44-
%{}
46+
%{attributes: %{"oban.plugin" => plugin}}
4547
)
4648
end
4749

4850
def handle_plugin_stop(_event, _measurements, metadata, _config) do
51+
Tracer.set_attributes(end_span_plugin_attrs(metadata))
4952
OpentelemetryTelemetry.end_telemetry_span(@tracer_id, metadata)
5053
end
5154

@@ -63,4 +66,24 @@ defmodule OpentelemetryOban.PluginHandler do
6366

6467
OpentelemetryTelemetry.end_telemetry_span(@tracer_id, metadata)
6568
end
69+
70+
defp end_span_plugin_attrs(%{plugin: Oban.Plugins.Cron} = metadata) do
71+
%{jobs_count: length(metadata[:jobs])}
72+
end
73+
74+
defp end_span_plugin_attrs(%{plugin: Oban.Plugins.Gossip} = metadata) do
75+
Map.take(metadata, [:gossip_count])
76+
end
77+
78+
defp end_span_plugin_attrs(%{plugin: Oban.Plugins.Lifeline} = metadata) do
79+
Map.take(metadata, [:discarded_count, :rescued_count])
80+
end
81+
82+
defp end_span_plugin_attrs(%{plugin: Oban.Plugins.Pruner} = metadata) do
83+
Map.take(metadata, [:pruned_count])
84+
end
85+
86+
defp end_span_plugin_attrs(_) do
87+
%{}
88+
end
6689
end

0 commit comments

Comments
 (0)