Instream v0.12.0 Instream.Connection behaviour

Connection (pool) definition.

All database connections will be made using a user-defined extension of this module.

Example Module

defmodule MyConnection do
  use Instream.Connection, otp_app: :my_application
end

Example Configuration

config :my_application, MyConnection,
  auth:      [ method: :basic, username: "root", password: "root" ]
  host:      "influxdb.example.com",
  http_opts: [ insecure: true, proxy: "http://company.proxy" ],
  loggers:   [{ LogModule, :log_fun, [ :additional, :args ] }],
  password:  "pass",
  pool:      [ max_overflow: 10, size: 5 ],
  port:      8086,
  scheme:    "http",
  username:  "user"

Summary

Callbacks

Sends a log entry to all configured loggers

Returns the (internal) pool module

Returns a supervisable pool child_spec

Returns the connection configuration

Executes a query

Pings a server

Executes a reading query

Checks the status of a connection

Executes a writing query

Types

Callbacks

__log__(log_entry)

Specs

__log__(log_entry) :: log_entry

Sends a log entry to all configured loggers.

__pool__()

Specs

__pool__ :: module

Returns the (internal) pool module.

child_spec()

Specs

child_spec :: Supervisor.Spec.spec

Returns a supervisable pool child_spec.

config()

Specs

config :: Keyword.t

Returns the connection configuration.

execute(query, opts)

Specs

execute(query :: query_type, opts :: Keyword.t) :: any

Executes a query.

Passing [async: true] in the options always returns :ok. The command will be executed asynchronously.

ping(host, opts)

Specs

ping(host :: String.t, opts :: Keyword.t) ::
  :pong |
  :error

Pings a server.

By default the first server in your connection configuration will be pinged.

The server passed does not necessarily need to belong to your connection. Only the connection details (scheme, port, …) will be used to determine the exact url to send the ping request to.

query(query, opts)

Specs

query(query :: String.t, opts :: Keyword.t) :: any

Executes a reading query.

See Instream.Connection.execute/2 and Instream.Data.Read.query/2 for a complete list of available options.

status(opts)

Specs

status(opts :: Keyword.t) :: :ok | :error

Checks the status of a connection.

write(payload, opts)

Specs

write(payload :: map | [map], opts :: Keyword.t) :: any

Executes a writing query.

See Instream.Connection.execute/2 and Instream.Data.Write.query/2 for a complete list of available options.