rethinkdb

package
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 7, 2017 License: BSD-3-Clause Imports: 17 Imported by: 0

README

RethinkDB adaptor

The RethinkDB adaptor is capable of reading/tailing tables and receiving data for inserts.

Configuration:
- rethink:
    type: rethinkdb
    uri: rethink://127.0.0.1:28015/
    # timeout: 30s
    # tail: false
    # ssl: false
    # cacerts: ["/path/to/cert.pem"]

Documentation

Index

Constants

View Source
const (
	// DefaultURI is the default endpoint for RethinkDB on the local machine.
	// Primarily used when initializing a new Client without a specific URI.
	DefaultURI = "rethinkdb://127.0.0.1:28015/test"

	// DefaultTimeout is the default time.Duration used if one is not provided for options
	// that pertain to timeouts.
	DefaultTimeout = 10 * time.Second

	// DefaultDatabase used for the connection options
	DefaultDatabase = "test"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client creates and holds the session to RethinkDB

func NewClient

func NewClient(options ...ClientOptionFunc) (*Client, error)

NewClient creates a new client to work with RethinkDB.

The caller can configure the new client by passing configuration options to the func.

Example:

client, err := NewClient(
  WithURI("rethinkdb://localhost:28015"),
  WithTimeout("30s"))

If no URI is configured, it uses DefaultURI.

An error is also returned when some configuration option is invalid

func (*Client) Close

func (c *Client) Close()

Close fulfills the Closer interface and takes care of cleaning up the rethink.Session

func (*Client) Connect

func (c *Client) Connect() (client.Session, error)

Connect wraps the underlying session to the RethinkDB database

type ClientOptionFunc

type ClientOptionFunc func(*Client) error

ClientOptionFunc is a function that configures a Client. It is used in NewClient.

func WithCACerts

func WithCACerts(certs []string) ClientOptionFunc

WithCACerts configures the RootCAs for the underlying TLS connection

func WithDatabase

func WithDatabase(db string) ClientOptionFunc

WithDatabase configures the database to use for the connection.

func WithReadTimeout

func WithReadTimeout(timeout string) ClientOptionFunc

WithReadTimeout overrides the DefaultTimeout and should be parseable by time.ParseDuration

func WithSSL

func WithSSL(ssl bool) ClientOptionFunc

WithSSL configures the database connection to connect via TLS.

func WithSessionTimeout

func WithSessionTimeout(timeout string) ClientOptionFunc

WithSessionTimeout overrides the DefaultTimeout and should be parseable by time.ParseDuration

func WithURI

func WithURI(uri string) ClientOptionFunc

WithURI defines the full connection string of the RethinkDB database.

func WithWriteTimeout

func WithWriteTimeout(timeout string) ClientOptionFunc

WithWriteTimeout overrides the DefaultTimeout and should be parseable by time.ParseDuration

type Config

type Config struct {
	URI       string   `json:"uri" doc:"the uri to connect to, in the form rethink://user:password@host.example:28015/database"`
	Namespace string   `json:"namespace" doc:"rethink namespace to read/write"`
	Timeout   string   `json:"timeout" doc:"timeout for establishing connection, format must be parsable by time.ParseDuration and defaults to 10s"`
	Tail      bool     `json:"tail" doc:"if true, the RethinkDB table will be monitored for changes after copying the namespace"`
	SSL       bool     `json:"ssl" doc:"enable TLS connection"`
	CACerts   []string `json:"cacerts" doc:"array of root CAs to use in order to verify the server certificates"`
}

Config provides custom configuration options for the RethinkDB adapter

type Reader

type Reader struct {
	// contains filtered or unexported fields
}

Reader fulfills the client.Reader interface for use with both copying and tailing a RethinkDB database.

func (*Reader) Read

func (r *Reader) Read(filterFn client.NsFilterFunc) client.MessageChanFunc

type RethinkDB

type RethinkDB struct {
	// contains filtered or unexported fields
}

RethinkDB is an adaptor that writes metrics to rethinkdb (http://rethinkdb.com/) An open-source distributed database

func (*RethinkDB) Connect

func (r *RethinkDB) Connect() error

Connect tests the connection and if successful, connects to the database

func (*RethinkDB) Description

func (r *RethinkDB) Description() string

Description for rethinkdb adaptor

func (*RethinkDB) Listen

func (r *RethinkDB) Listen() (err error)

Listen start's the adaptor's listener

func (*RethinkDB) SampleConfig

func (r *RethinkDB) SampleConfig() string

SampleConfig for rethinkdb adaptor

func (*RethinkDB) Start

func (r *RethinkDB) Start() error

Start the adaptor as a source

func (*RethinkDB) Stop

func (r *RethinkDB) Stop() error

Stop the adaptor

type Session

type Session struct {
	// contains filtered or unexported fields
}

Session contains an instance of the rethink.Session for use by Readers/Writers

type Writer

type Writer struct {
	*sync.Mutex
	// contains filtered or unexported fields
}

Writer implements client.Writer for use with RethinkDB

func (*Writer) Write

func (w *Writer) Write(msg message.Msg) func(client.Session) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL