File tree 1 file changed +24
-1
lines changed
instrumentation/opentelemetry_oban/lib/opentelemetry_oban
1 file changed +24
-1
lines changed Original file line number Diff line number Diff line change 1
1
defmodule OpentelemetryOban.PluginHandler do
2
+ require OpenTelemetry.Tracer , as: Tracer
3
+
2
4
alias OpenTelemetry.Span
3
5
4
6
@ tracer_id __MODULE__
@@ -41,11 +43,12 @@ defmodule OpentelemetryOban.PluginHandler do
41
43
@ tracer_id ,
42
44
"#{ plugin } process" ,
43
45
metadata ,
44
- % { }
46
+ % { attributes: % { "oban.plugin" => plugin } }
45
47
)
46
48
end
47
49
48
50
def handle_plugin_stop ( _event , _measurements , metadata , _config ) do
51
+ Tracer . set_attributes ( end_span_plugin_attrs ( metadata ) )
49
52
OpentelemetryTelemetry . end_telemetry_span ( @ tracer_id , metadata )
50
53
end
51
54
@@ -63,4 +66,24 @@ defmodule OpentelemetryOban.PluginHandler do
63
66
64
67
OpentelemetryTelemetry . end_telemetry_span ( @ tracer_id , metadata )
65
68
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
66
89
end
You can’t perform that action at this time.
0 commit comments