eventsd-client

2.1.0 • Public • Published

eventsd-client

EventsD client library for receiving events that are sent to an EventsD service.

Clients like opstail can be built using this client library.

Install

npm install --save eventsd-client

Note: Requires Node.js version >= 4.2.2

Usage

const Client = require('eventsd-client');
 
let options = {
    keys: [
        'event.*.env.production.#',
        'event.*.env.staging.#',
        {
            routingKey: 'event.*.env.qa.#'
        },
        {
            routingKey: 'event.*.env.dev.#',
            id: 'dev-events'
        }
    ]
};
 
let client = new Client(options);
 
client.on('event', function (event) {
    // received an event
    // do something with it
    
    console.log(event);
});
 
client.start();

Add/Remove bound routing keys without reconnecting

// 'connect' event already fired
 
client.addKey('event.test.#');
client.addKey(['event.test1.#', 'event.test2.#']);
 
 
client.removeKey('event.test.#');
client.removeKey(['event.test1.#', 'event.test2.#']);

Client Options

// Default Client Options
const defaultOptions = {
  host: '127.0.0.1',
  port: 8151,
  keys: [],
  ssl: {
    enable: false
  }
};
  • host: the hostname/IP address of the EventsD server to connect to
  • port: the port number that the EventsD server accepts client connections on
  • keys: an array of event routing key patterns to bind to (this determines which events this client instance will receive)
  • ssl:
    • enable: use SSL to connect to the EventsD server

EventsD Server v2.1.0+

Version 2.1.0+ of the eventsd-server allows clients to share an event stream.

To use this feature, provide the following object as your key (instead of a string):

{
    routingKey: 'event.test.#',
    id: 'test-events'
}

The important field here is the id field.

If an id is provided in the key object, then all clients with the same routingKey and id will share the same event stream (this acts like load balancing/distribution).

Environment Variables

The DEBUG environment variable can be used to see verbose logs from the client.

DEBUG=eventsd-client

Testing

npm test

NOTE:

A local RabbitMQ server is REQUIRED to run the tests.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 2.1.0
    1
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 2.1.0
    1
  • 2.0.1
    0
  • 2.0.0
    0

Package Sidebar

Install

npm i eventsd-client

Weekly Downloads

1

Version

2.1.0

License

ISC

Last publish

Collaborators

  • cthayer