@@ -3,7 +3,7 @@ defmodule FunWithFlags.Store do
33
44 require Logger
55 alias FunWithFlags.Store.Cache
6- alias FunWithFlags . { Config , Flag }
6+ alias FunWithFlags . { Config , Flag , Telemetry }
77
88 import FunWithFlags.Config , only: [ persistence_adapter: 0 ]
99
@@ -15,11 +15,11 @@ defmodule FunWithFlags.Store do
1515 { :miss , reason , stale_value_or_nil } ->
1616 case persistence_adapter ( ) . get ( flag_name ) do
1717 { :ok , flag } ->
18- emit_persistence_telemetry ( { :ok , nil } , :read , flag_name , nil )
18+ Telemetry . emit_persistence_event ( { :ok , nil } , :read , flag_name , nil )
1919 Cache . put ( flag )
2020 { :ok , flag }
2121 err = { :error , _reason } ->
22- emit_persistence_telemetry ( err , :read , flag_name , nil )
22+ Telemetry . emit_persistence_event ( err , :read , flag_name , nil )
2323 try_to_use_the_cached_value ( reason , stale_value_or_nil , flag_name )
2424 end
2525 end
@@ -39,7 +39,7 @@ defmodule FunWithFlags.Store do
3939 def put ( flag_name , gate ) do
4040 flag_name
4141 |> persistence_adapter ( ) . put ( gate )
42- |> emit_persistence_telemetry ( :write , flag_name , gate )
42+ |> Telemetry . emit_persistence_event ( :write , flag_name , gate )
4343 |> publish_change ( )
4444 |> cache_persistence_result ( )
4545 end
@@ -49,7 +49,7 @@ defmodule FunWithFlags.Store do
4949 def delete ( flag_name , gate ) do
5050 flag_name
5151 |> persistence_adapter ( ) . delete ( gate )
52- |> emit_persistence_telemetry ( :delete_gate , flag_name , gate )
52+ |> Telemetry . emit_persistence_event ( :delete_gate , flag_name , gate )
5353 |> publish_change ( )
5454 |> cache_persistence_result ( )
5555 end
@@ -59,7 +59,7 @@ defmodule FunWithFlags.Store do
5959 def delete ( flag_name ) do
6060 flag_name
6161 |> persistence_adapter ( ) . delete ( )
62- |> emit_persistence_telemetry ( :delete_flag , flag_name , nil )
62+ |> Telemetry . emit_persistence_event ( :delete_flag , flag_name , nil )
6363 |> publish_change ( )
6464 |> cache_persistence_result ( )
6565 end
@@ -70,22 +70,22 @@ defmodule FunWithFlags.Store do
7070 Logger . debug fn -> "FunWithFlags: reloading cached flag '#{ flag_name } ' from storage " end
7171 flag_name
7272 |> persistence_adapter ( ) . get ( )
73- |> emit_persistence_telemetry ( :reload , flag_name , nil )
73+ |> Telemetry . emit_persistence_event ( :reload , flag_name , nil )
7474 |> cache_persistence_result ( )
7575 end
7676
7777
7878 @ spec all_flags ( ) :: { :ok , [ FunWithFlags.Flag . t ] } | { :error , any ( ) }
7979 def all_flags do
8080 persistence_adapter ( ) . all_flags ( )
81- |> emit_persistence_telemetry ( :read_all_flags , nil , nil )
81+ |> Telemetry . emit_persistence_event ( :read_all_flags , nil , nil )
8282 end
8383
8484
8585 @ spec all_flag_names ( ) :: { :ok , [ atom ] } | { :error , any ( ) }
8686 def all_flag_names do
8787 persistence_adapter ( ) . all_flag_names ( )
88- |> emit_persistence_telemetry ( :read_all_flag_names , nil , nil )
88+ |> Telemetry . emit_persistence_event ( :read_all_flag_names , nil , nil )
8989 end
9090
9191 defp cache_persistence_result ( result = { :ok , flag } ) do
@@ -109,30 +109,4 @@ defmodule FunWithFlags.Store do
109109 defp publish_change ( result ) do
110110 result
111111 end
112-
113- # Receive the flag name as an explicit parameter rather than pattern matching
114- # it from the `{:ok, %Flag{}}`, because that tuple is only available on success,
115- # and it's therefore not available when pipelining on an error.
116- #
117- defp emit_persistence_telemetry ( result = { :ok , _ } , event_name , flag_name , gate ) do
118- metadata = % {
119- flag_name: flag_name ,
120- gate: gate ,
121- }
122-
123- FunWithFlags.Telemetry . persistence_event ( event_name , metadata )
124- result
125- end
126-
127- defp emit_persistence_telemetry ( result = { :error , reason } , event_name , flag_name , gate ) do
128- metadata = % {
129- flag_name: flag_name ,
130- gate: gate ,
131- error: reason ,
132- original_event: event_name
133- }
134-
135- FunWithFlags.Telemetry . persistence_event ( :error , metadata )
136- result
137- end
138112end
0 commit comments