influxdb-1.9.3.2: examples/write-udp.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Control.Exception
import Control.Lens
import Data.Time.Clock
import Network.Socket
import Database.InfluxDB
import qualified Database.InfluxDB.Write.UDP as UDP
main :: IO ()
main = bracket (socket AF_INET Datagram defaultProtocol) close $ \sock -> do
let localhost = tupleToHostAddress (127, 0, 0, 1)
let params = UDP.writeParams sock $ SockAddrInet 8089 localhost
tags1 =
[ ("tag1", "A")
, ("tag2", "B")
]
fields1 =
[ ("val1", FieldInt 10)
, ("val2", FieldBool True)
]
fields2 =
[ ("val1", FieldInt 1)
, ("val2", FieldBool False)
]
UDP.write params $
Line "measurement1" tags1 fields1 (Nothing :: Maybe UTCTime)
now <- getCurrentTime
UDP.write
(params & UDP.precision .~ Millisecond)
(Line "measurement1" tags1 fields2 (Just now))