core-telemetry 0.2.5.0 → 0.2.6.0
raw patch · 2 files changed
+34/−4 lines, 2 filesdep +uuid-typesdep ~core-dataPVP ok
version bump matches the API change (PVP)
Dependencies added: uuid-types
Dependency ranges changed: core-data
API changes (from Hackage documentation)
+ Core.Telemetry.Observability: instance Core.Telemetry.Observability.Telemetry Data.Time.Calendar.Days.Day
+ Core.Telemetry.Observability: instance Core.Telemetry.Observability.Telemetry Data.UUID.Types.Internal.UUID
Files
core-telemetry.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: core-telemetry-version: 0.2.5.0+version: 0.2.6.0 synopsis: Advanced telemetry description: This is part of a library to help build command-line programs, both tools and longer-running daemons.@@ -52,7 +52,7 @@ async , base >=4.11 && <5 , bytestring- , core-data >=0.3.4.0+ , core-data >=0.3.6.0 , core-program >=0.5.0.2 , core-text >=0.3.7.1 , exceptions@@ -68,5 +68,6 @@ , text , time , unix+ , uuid-types , zlib default-language: Haskell2010
lib/Core/Telemetry/Observability.hs view
@@ -185,7 +185,9 @@ import Data.Scientific (Scientific) import Data.Text qualified as T (Text) import Data.Text.Lazy qualified as U (Text)+import Data.Time.Calendar (Day) import Data.Time.Clock (UTCTime)+import Data.UUID.Types (UUID) import GHC.Int import GHC.Word import System.Random (randomIO)@@ -325,6 +327,18 @@ metric k v = MetricValue (JsonKey k) (JsonString (formatExternal (intoTime v))) {- |+@since 0.2.6+-}+instance Telemetry Day where+ metric k v = MetricValue (JsonKey k) (JsonString (formatExternal v))++{- |+@since 0.2.6+-}+instance Telemetry UUID where+ metric k v = MetricValue (JsonKey k) (JsonString (formatExternal v))++{- | Activate the telemetry subsystem for use within the 'Core.Program.Execute.Program' monad. @@ -756,7 +770,12 @@ let v = currentDatumFrom context modifyMVar_ v- (\datum -> pure datum{attachedMetadataFrom = emptyMap})+ ( \datum ->+ pure+ datum+ { attachedMetadataFrom = emptyMap+ }+ ) {- | Reset the program context so that the currently executing program is no longer@@ -765,6 +784,10 @@ This is specifically for the occasion where you have forked a new thread but have not yet received the event which would occasion starting a new trace. +The current "service name" associated with this execution thread is preserved+(usually this is set once per process at startup or once with 'setServiceName'+and having to reset it everytime you call this would be silly).+ @since 0.2.4 -} clearTrace :: Program τ ()@@ -775,4 +798,10 @@ let v = currentDatumFrom context modifyMVar_ v- (\_ -> pure emptyDatum)+ ( \datum -> do+ let name = serviceNameFrom datum+ pure+ emptyDatum+ { serviceNameFrom = name+ }+ )