@@ -25,6 +25,14 @@ defmodule Sentry.Opentelemetry.SpanStorage do
2525 GenServer . call ( __MODULE__ , { :update_span , span_data } )
2626 end
2727
28+ def remove_span ( span_id ) do
29+ GenServer . call ( __MODULE__ , { :remove_span , span_id } )
30+ end
31+
32+ def remove_child_spans ( parent_span_id ) do
33+ GenServer . call ( __MODULE__ , { :remove_child_spans , parent_span_id } )
34+ end
35+
2836 def handle_call ( { :store_span , span_data } , _from , state ) do
2937 if span_data . parent_span_id == nil do
3038 new_state = put_in ( state , [ :root_spans , span_data . span_id ] , span_data )
@@ -62,4 +70,18 @@ defmodule Sentry.Opentelemetry.SpanStorage do
6270 { :reply , :ok , new_state }
6371 end
6472 end
73+
74+ def handle_call ( { :remove_span , span_id } , _from , state ) do
75+ new_state = % {
76+ state |
77+ root_spans: Map . delete ( state . root_spans , span_id ) ,
78+ child_spans: Map . delete ( state . child_spans , span_id )
79+ }
80+ { :reply , :ok , new_state }
81+ end
82+
83+ def handle_call ( { :remove_child_spans , parent_span_id } , _from , state ) do
84+ new_state = % { state | child_spans: Map . delete ( state . child_spans , parent_span_id ) }
85+ { :reply , :ok , new_state }
86+ end
6587end
0 commit comments