packages feed

core-telemetry 0.2.3.0 → 0.2.3.2

raw patch · 5 files changed

+29/−27 lines, 5 filesdep −chronologiquedep ~core-datadep ~core-programdep ~core-textPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies removed: chronologique

Dependency ranges changed: core-data, core-program, core-text

API changes (from Hackage documentation)

- Core.Telemetry.Identifiers: createIdentifierSpan :: TimeStamp -> Word16 -> Span
+ Core.Telemetry.Identifiers: createIdentifierSpan :: Time -> Word16 -> Span
- Core.Telemetry.Identifiers: createIdentifierTrace :: TimeStamp -> Word16 -> MAC -> Trace
+ Core.Telemetry.Identifiers: createIdentifierTrace :: Time -> Word16 -> MAC -> Trace
- Core.Telemetry.Observability: setStartTime :: TimeStamp -> Program τ ()
+ Core.Telemetry.Observability: setStartTime :: Time -> Program τ ()

Files

core-telemetry.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           core-telemetry-version:        0.2.3.0+version:        0.2.3.2 synopsis:       Advanced telemetry description:    This is part of a library to help build command-line programs, both tools and                 longer-running daemons.@@ -52,10 +52,9 @@       async     , base >=4.11 && <5     , bytestring-    , chronologique-    , core-data >=0.3.2.2-    , core-program >=0.4.6.1-    , core-text >=0.3.6.0+    , core-data >=0.3.3+    , core-program >=0.5.0+    , core-text >=0.3.7     , exceptions     , http-streams     , io-streams
lib/Core/Telemetry/Console.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralisedNewtypeDeriving #-}+{-# LANGUAGE ImportQualifiedPost #-} {-# LANGUAGE OverloadedStrings #-}  {- |@@ -23,16 +24,16 @@  import Control.Concurrent.STM (atomically) import Control.Concurrent.STM.TQueue (TQueue, writeTQueue)+import Core.Data.Clock import Core.Data.Structures (fromMap) import Core.Encoding.Json import Core.Program.Arguments import Core.Program.Context import Core.Program.Logging-import Core.System.External (getCurrentTimeNanoseconds) import Core.Text.Colour import Core.Text.Rope import Core.Text.Utilities-import qualified Data.List as List+import Data.List qualified as List  {- | Output metrics to the terminal. This is mostly useful for debugging, but it
lib/Core/Telemetry/Honeycomb.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralisedNewtypeDeriving #-}+{-# LANGUAGE ImportQualifiedPost #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}@@ -34,30 +35,30 @@     honeycombExporter, ) where +import Control.Exception.Safe qualified as Safe (catch, finally, throw)+import Core.Data.Clock (Time, unTime, getCurrentTimeNanoseconds) import Core.Data.Structures (Map, fromMap, insertKeyValue, intoMap, lookupKeyValue) import Core.Encoding.Json import Core.Program.Arguments import Core.Program.Context import Core.Program.Logging-import Core.System-import Core.System.Base (stdout)-import Core.System.External (TimeStamp (unTimeStamp), getCurrentTimeNanoseconds)+import Core.System.Base (SomeException, liftIO, stdout) import Core.Text.Bytes import Core.Text.Colour import Core.Text.Rope import Core.Text.Utilities import Data.ByteString (ByteString)-import qualified Data.ByteString as B (ByteString)-import qualified Data.ByteString.Char8 as C (append, null, putStrLn)-import qualified Data.ByteString.Lazy as L (ByteString)+import Data.ByteString qualified as B (ByteString)+import Data.ByteString.Char8 qualified as C (append, null, putStrLn)+import Data.ByteString.Lazy qualified as L (ByteString) import Data.Fixed import Data.IORef (IORef, newIORef, readIORef, writeIORef)-import qualified Data.List as List+import Data.List qualified as List import Network.Http.Client import System.Environment (lookupEnv) import System.Exit (ExitCode (..)) import System.IO.Streams (InputStream)-import qualified System.Posix.Process as Posix (exitImmediately)+import System.Posix.Process qualified as Posix (exitImmediately)  {- | Indicate which \"dataset\" spans and events will be posted into@@ -221,7 +222,7 @@  cleanupConnection :: IORef (Maybe Connection) -> IO () cleanupConnection r = do-    finally+    Safe.finally         ( do             possible <- readIORef r             case possible of@@ -236,7 +237,7 @@ postEventToHoneycombAPI r apikey dataset json = attempt False   where     attempt retrying = do-        catch+        Safe.catch             ( do                 c <- acquireConnection r @@ -252,7 +253,7 @@                     False -> do                         putStrLn "Reattempting"                         attempt True-                    True -> throw e+                    True -> Safe.throw e             )      q = buildRequest1 $ do
lib/Core/Telemetry/Identifiers.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE BangPatterns #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralisedNewtypeDeriving #-}+{-# LANGUAGE ImportQualifiedPost #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE RankNTypes #-}@@ -34,11 +35,11 @@ ) where  import Control.Concurrent.MVar (modifyMVar_, readMVar)+import Core.Data.Clock import Core.Program.Context import Core.Program.Logging import Core.System (unsafePerformIO) import Core.System.Base (liftIO)-import Core.System.External (TimeStamp (unTimeStamp)) import Core.Text.Rope import Core.Text.Utilities (breakPieces) import Data.Bits (shiftL, shiftR, (.&.), (.|.))@@ -82,9 +83,9 @@  @since 0.1.9 -}-createIdentifierTrace :: TimeStamp -> Word16 -> MAC -> Trace+createIdentifierTrace :: Time -> Word16 -> MAC -> Trace createIdentifierTrace time rand address =-    let p1 = packRope (toHexReversed64 (fromIntegral time))+    let p1 = packRope (toHexReversed64 (fromIntegral (unTime time)))         p2 = packRope (toHexNormal16 rand)         p3 = packRope (convertMACToHex address)      in Trace@@ -211,14 +212,14 @@  {- | Generate an identifier for a span. We only have 8 bytes to work with. We use-the nanosecond prescision timestamp with the nibbles reversed, and then+the nanosecond prescision Time with the nibbles reversed, and then overwrite the last two bytes with the supplied random value.  @since 0.1.9 -}-createIdentifierSpan :: TimeStamp -> Word16 -> Span+createIdentifierSpan :: Time -> Word16 -> Span createIdentifierSpan time rand =-    let t = fromIntegral (unTimeStamp time) :: Word64+    let t = fromIntegral (unTime time) :: Word64         r = fromIntegral rand :: Word64         w = (t .&. 0x0000ffffffffffff) .|. (shiftL r 48)      in Span
lib/Core/Telemetry/Observability.hs view
@@ -170,9 +170,9 @@ import Core.Encoding.Json import Core.Program.Arguments import Core.Program.Context+import Core.Data.Clock import Core.Program.Logging import Core.System.Base (SomeException, liftIO)-import Core.System.External (TimeStamp (unTimeStamp), getCurrentTimeNanoseconds) import Core.Telemetry.Identifiers import Core.Text.Rope import Core.Text.Utilities (oxford, quote)@@ -442,7 +442,7 @@         datum2 <- readMVar v2         let datum2' =                 datum2-                    { durationFrom = Just (unTimeStamp finish - unTimeStamp start)+                    { durationFrom = Just (unTime finish - unTime start)                     }          let tel = telemetryChannelFrom context@@ -707,7 +707,7 @@ are designed to be used live; traces and spans should be created in real time in your code. -}-setStartTime :: TimeStamp -> Program τ ()+setStartTime :: Time -> Program τ () setStartTime time = do     context <- getContext