tempodb 0.2.2.4 → 0.2.2.5
raw patch · 4 files changed
+23/−24 lines, 4 files
Files
- src/Database/Tempodb/Methods/Read.hs +2/−3
- src/Database/Tempodb/Methods/Write.hs +3/−4
- src/Database/Tempodb/Types.hs +17/−16
- tempodb.cabal +1/−1
src/Database/Tempodb/Methods/Read.hs view
@@ -10,14 +10,13 @@ import Data.Aeson as A import Data.ByteString.Char8 as C8 import Data.ByteString.Lazy (fromStrict)-import Data.Int import Data.Monoid import Database.Tempodb.Types import Database.Tempodb.Util import Network.HTTP.Base (urlEncodeVars) import Network.Http.Client -readOne :: IdOrKey -> Maybe QueryArgs -> Tempodb (Maybe (SeriesData Int64))+readOne :: IdOrKey -> Maybe QueryArgs -> Tempodb (Maybe SeriesData) readOne q qa = do auth <- ask req <- liftIO . buildRequest $ do@@ -37,7 +36,7 @@ Nothing -> mempty Just qry -> "?" <> (C8.pack $ urlEncodeVars qry) -readMulti :: Maybe QueryArgs -> Tempodb (Maybe [SeriesData Int64])+readMulti :: Maybe QueryArgs -> Tempodb (Maybe [SeriesData]) readMulti q = do auth <- ask req <- liftIO . buildRequest $ do
src/Database/Tempodb/Methods/Write.hs view
@@ -11,13 +11,12 @@ import Data.Aeson as A import Data.ByteString.Char8 as C8 import Data.ByteString.Lazy (fromStrict, toStrict)-import Data.Int import Data.Monoid import Database.Tempodb.Types as T import Database.Tempodb.Util import Network.Http.Client -writeOne :: IdOrKey -> Data Int64 -> Tempodb Bool+writeOne :: IdOrKey -> Data -> Tempodb Bool writeOne q d = do let postdata = toStrict $ A.encode d auth <- ask@@ -35,7 +34,7 @@ ident (T.SeriesKey k) = "/key/" <> k path = rootpath <> "/series" <> (ident q) -writeBulk :: Bulk Int64 -> Tempodb Bool+writeBulk :: Bulk -> Tempodb Bool writeBulk d = do let postData = toStrict $ A.encode d auth <- ask@@ -48,7 +47,7 @@ return True -writeMulti :: [Data Int64] -> T.Tempodb (Either (Maybe [Data Int64]) Bool)+writeMulti :: [Data] -> T.Tempodb (Either (Maybe [Data]) Bool) writeMulti d = do let postData = toStrict $ A.encode d auth <- ask
src/Database/Tempodb/Types.hs view
@@ -12,7 +12,6 @@ import Data.Aeson.Types import qualified Data.ByteString as B import Data.ByteString.Char8 as C8-import Data.Int import Data.Map (Map) import qualified Data.Text as T import Data.Text.Encoding (decodeUtf8, encodeUtf8)@@ -84,18 +83,20 @@ parseJSON = withText "ByteString" $ pure . encodeUtf8 {-# INLINE parseJSON #-} -data Data a = Data+data Data = Data { uid :: Maybe IdOrKey , timestamp :: Maybe TempoDBTime- , value :: a+ , value :: Double } deriving (Show, Eq) -instance Ord a => Ord (Data a) where- compare (Data _ t _) (Data _ t' _) = t `compare` t'+instance Ord Data where+ compare (Data _ (Just t) _) (Data _ (Just t') _) = compare t t'+ -- compare (Data _ Nothing _) (Data _ t' _) = compare Nothing t'+ -- compare (Data _ Nothing v) (Data _ Nothing v') = compare v v' -data Bulk a = Bulk+data Bulk = Bulk { timestmp :: TempoDBTime- , bulkValues :: [Data a]+ , bulkValues :: [Data] } deriving (Show, Eq, Ord) data Rollup = Rollup@@ -114,16 +115,16 @@ , count :: Int } deriving (Show, Eq, Ord) -data SeriesData a = SeriesData+data SeriesData = SeriesData { series :: Series , start :: TempoDBTime , end :: TempoDBTime- , values :: [Data a]+ , values :: [Data] , rollup :: Maybe Rollup , summary :: Summary } deriving (Show, Eq, Ord) -instance FromJSON (SeriesData Int64) where+instance FromJSON SeriesData where parseJSON (Object o) = SeriesData <$> o .: "series" <*> o .: "start" <*>@@ -134,13 +135,13 @@ parseJSON _ = mzero -instance FromJSON (Bulk Int64) where+instance FromJSON Bulk where parseJSON (Object o) = Bulk <$> o .: "t" <*> o .: "data" parseJSON _ = mzero -instance ToJSON (Bulk Int64) where+instance ToJSON Bulk where toJSON (Bulk t v) = object [ "t" .= t , "data" .= v@@ -178,10 +179,10 @@ Nothing -> mzero parseJSON _ = mzero -instance FromJSON (Data Int64) where+instance FromJSON Data where parseJSON = parseSeriesData -parseSeriesData :: Value -> Parser (Data Int64)+parseSeriesData :: Value -> Parser Data parseSeriesData v = do case v of Object o -> do@@ -199,10 +200,10 @@ Nothing -> return Nothing Just idkey -> return . Just $ SeriesKey idkey -instance ToJSON (Data Int64) where+instance ToJSON Data where toJSON = buildSeriesData -buildSeriesData :: (Data Int64) -> Value+buildSeriesData :: Data -> Value buildSeriesData (Data i t v) = object . ts . eid $ ["v" .= v] where ts l = case t of
tempodb.cabal view
@@ -1,5 +1,5 @@ name: tempodb-version: 0.2.2.4+version: 0.2.2.5 synopsis: A small Haskell wrapper around the TempoDB api. description: TempoDB is a time-series database as-a-service with a