Kinesis writteable stream for bunyan.
Installation
npm i bunyan-kinesis --save
Usage
var KinesisWritable = require('kinesis-writable');
var kinesis = new KinesisWritable({
accessKeyId: 'KEY_ID',
secretAccessKey: 'SECRET_KEY',
region: 'AWS_REGION',
streamName: 'MyKinesisStream',
partitionKey: 'MyApp'
});
process.stdin.resume();
process.stdin.pipe(kinesis);
Configuration Parameters
buffer
(defaults to true): It can be a boolean or an object describing its conditions.
This library uses by default an smart buffering approach. Messages are sent when one of the following conditions are meet:
- X seconds after the last batch of messages sent. Default: 5 seconds.
- X messages are queued waiting to be sent. Default: 10 messages.
- a message is prioritary. Default: all messages are not prioritary
Example:
new KinesisWritable({
region: 'AWS_REGION',
streamName: 'MyKinesisStream',
partitionKey: "foo",
buffer: {
timeout: 1,
lenght: 100,
isPrioritaryMsg: function (msg) {
var entry = JSON.parse(msg);
return entry.type > 40;
}
}
});
partitionKey
can be either an string or a function that accepts a mesage and returns a string. By default it is a function that returns the current EPOCH (Date.now()). Example:
new BunyanKinesis({
region: 'AWS_REGION',
streamName: 'MyKinesisStream',
partitionKey: function (msg) {
var entry = JSON.parse(msg);
return entry.level + '|' + entry.name;
}
});
streamName
is the name of the Kinesis Stream.
Methods
getStreamName()
: returns Stream's name.
setStreamName(name)
: set the name of the stream where messages will be send.
Events
errorRecord
: Emitted once for each failed record at the aws.kinesis.putRecords
's response.
Note: Amazon Credentials are not required. It will either use the environment variables, ~/.aws/credentials
or roles as every other aws sdk.
License
MIT 2015 - AUTH0 INC.