diff --git a/core-telemetry.cabal b/core-telemetry.cabal
--- a/core-telemetry.cabal
+++ b/core-telemetry.cabal
@@ -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
diff --git a/lib/Core/Telemetry/Observability.hs b/lib/Core/Telemetry/Observability.hs
--- a/lib/Core/Telemetry/Observability.hs
+++ b/lib/Core/Telemetry/Observability.hs
@@ -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
+                        }
+            )
