influxdb-1.6.0.6: Haskell client library for InfluxDB

Safe HaskellNone
LanguageHaskell2010

Database.InfluxDB.Manage

Contents

Synopsis

Management query interface

data Query #

An InfluxDB query.

A spec of the format is available at https://docs.influxdata.com/influxdb/v1.5/query_language/spec/.

A Query can be constructed using either

>>> :set -XOverloadedStrings
>>> "SELECT * FROM series" :: Query
"SELECT * FROM series"
>>> import qualified Database.InfluxDB.Format as F
>>> formatQuery ("SELECT * FROM "%F.key) "series"
"SELECT * FROM \"series\""

NOTE: Currently this library doesn't support type-safe query construction.

Instances
Show Query # 
Instance details

Defined in Database.InfluxDB.Types

Methods

showsPrec :: Int -> Query -> ShowS #

show :: Query -> String #

showList :: [Query] -> ShowS #

IsString Query # 
Instance details

Defined in Database.InfluxDB.Types

Methods

fromString :: String -> Query #

manage :: QueryParams -> Query -> IO () #

Send a database management query to InfluxDB.

>>> let db = "manage-test"
>>> let p = queryParams db
>>> manage p $ F.formatQuery ("CREATE DATABASE "%F.database) db

Query parameters

data QueryParams #

The full set of parameters for the query API

Instances
HasCredentials QueryParams #

Authentication info for the query

>>> let p = queryParams "foo"
>>> p ^. authentication
Nothing
>>> let p' = p & authentication ?~ credentials "john" "passw0rd"
>>> p' ^. authentication.traverse.user
"john"
Instance details

Defined in Database.InfluxDB.Query

HasManager QueryParams #
>>> let p = queryParams "foo" & manager .~ Left HC.defaultManagerSettings
Instance details

Defined in Database.InfluxDB.Query

HasDatabase QueryParams #
>>> let p = queryParams "foo"
>>> p ^. database
"foo"
Instance details

Defined in Database.InfluxDB.Query

HasServer QueryParams #
>>> let p = queryParams "foo"
>>> p ^. server.host
"localhost"
Instance details

Defined in Database.InfluxDB.Query

HasPrecision QueryRequest QueryParams #

Returning JSON responses contain timestamps in the specified precision/format.

>>> let p = queryParams "foo"
>>> p ^. precision
RFC3339
Instance details

Defined in Database.InfluxDB.Query

server :: HasServer a => Lens' a Server #

InfluxDB server address and port that to interact with.

database :: HasDatabase a => Lens' a Database #

Database name to work on.

precision :: HasPrecision ty a => Lens' a (Precision ty) #

Time precision parameter.

manager :: HasManager a => Lens' a (Either ManagerSettings Manager) #

HTTP manager settings or a manager itself.

If it's set to ManagerSettings, the library will create a Manager from the settings for you.

Management query results

SHOW QUERIES

data ShowQuery #

>>> v <- query (queryParams "_internal") "SHOW QUERIES" :: IO (V.Vector ShowQuery)
Instances
HasDatabase ShowQuery #
>>> v <- query (queryParams "_internal") "SHOW QUERIES" :: IO (V.Vector ShowQuery)
>>> v ^.. each.database
...
Instance details

Defined in Database.InfluxDB.Manage

QueryResults ShowQuery # 
Instance details

Defined in Database.InfluxDB.Manage

qid :: Lens' ShowQuery Int #

Query ID

>>> v <- query (queryParams "_internal") "SHOW QUERIES" :: IO (V.Vector ShowQuery)
>>> v ^.. each.qid
...

queryText :: Lens' ShowQuery Query #

Query text

>>> v <- query (queryParams "_internal") "SHOW QUERIES" :: IO (V.Vector ShowQuery)
>>> v ^.. each.queryText
...

duration :: Lens' ShowQuery NominalDiffTime #

Duration of the query

>>> v <- query (queryParams "_internal") "SHOW QUERIES" :: IO (V.Vector ShowQuery)
>>> v ^.. each.duration
...

SHOW SERIES

key :: Lens' ShowSeries Key #

Series name

>>> v <- query (queryParams "_internal") "SHOW SERIES" :: IO (V.Vector ShowSeries)
>>> length $ v ^.. each.key
...