boomcatch
A standalone,
node.js-based
beacon receiver for boomerang.
Read more.
- boomcatch version: 3.2.3
- node.js versions: 0.10 and later
Installation
At the system level
First you must
install node.
You can then
install boomcatch via npm:
npm install -g boomcatch
Local to a node.js project
Add boomcatch
to the dependencies
in your project's package.json
,
then run:
npm install
Usage
From the command line
To see
the list of command line options
run:
boomcatch --help
Available options are:
-
--host <name>
:
Host name to accept HTTP connections on.
The default is 0.0.0.0 (INADDR_ANY).
-
--port <port>
:
Port to accept HTTP connections on.
Defaults to
80 for HTTP or
443 for HTTPS.
-
--https
:
Start the server
in HTTPS mode.
-
--httpsPfx
:
PFX/PKCX12 string
containing the private key,
certificate and
CA certs
for HTTPS mode.
-
--httpsKey
:
Path to private key file
for HTTPS mode.
Ignored if --httpsPfx
is set.
-
--httpsCert
:
Path to certificate file
for HTTPS mode.
Ignored if --httpsPfx
is set.
-
--httpsPass
:
Passphrase for
--httpsPfx
or --httpsKey
options.
-
--path <path>
:
URL path to accept requests to.
The default is /beacon.
-
--referer <regex>
:
HTTP referers to accept requests from.
The default is .*
.
-
--origin <origin>
:
Comma-separated list of URL(s)
for the Access-Control-Allow-Origin header.
The default is * (any origin),
specify 'null' to force same origin.
-
--limit <milliseconds>
:
Minimum elapsed time to allow
between requests from the same IP adderss.
The default is 0.
-
--maxSize <bytes>
:
Maximum body size to allow for POST requests.
The default is -1 (unlimited).
-
--silent
:
Prevent the command
from logging output
to the console.
-
--syslog <facility>
:
Use syslog-compatible logging,
with the specified facility level.
-
--workers <count>
:
The number of worker processes to spawn.
The default is -1
(one worker per CPU).
-
--delayRespawn <milliseconds>
:
The length of time to delay
before respawning worker processes.
The default is 0.
-
--maxRespawn <count>
:
The maximum number of times
to respawn worker processes.
The default is -1
(unlimited).
-
--validator <path>
:
Validator used to accept or reject request data.
The default is permissive
(always accept requests).
-
--mapper <path>
:
Data mapper used to transform data before forwarding,
loaded with require.
The default is statsd.
-
--prefix <prefix>
:
Prefix for mapped metric names.
The default is the empty string
(no prefix).
-
--forwarder <path>
:
Forwarder used to send data,
loaded with require.
The default is udp.
-
--fwdHost <name>
:
Host name to forward mapped data to.
The default is 127.0.0.1.
This option is only effective
with the UDP forwarder.
-
--fwdPort <port>
:
Port to forward mapped data on.
The default is 8125.
This option is only effective
with the UDP forwarder.
-
--fwdSize <bytes>
:
Maximum packet size
for forwarded data.
The default is 512.
This option is only effective
with the UDP forwarder.
-
--fwdUrl <url>
:
URL to forward mapped data to.
This option is only effective
with the HTTP forwarder.
-
--fwdMethod <method>
:
Method to forward mapped data with.
The default is GET.
This option is only effective
with the HTTP forwarder.
-
--fwdDir <path>
:
Directory to write mapped data to.
This option is only effective
with the file forwarder.
From a node.js project
var path = require('path'),
boomcatch = require('boomcatch');
boomcatch.listen({
host: 'rum.example.com',
port: 8080,
https: true,
httpsKey: 'foo.key',
httpsCert: 'bar.cert',
httpsPass: 'baz',
path: '/perf',
referer: /^\w+\.example\.com$/,
origin: [
'http://foo.example.com',
'http://bar.example.com'
],
limit: 100,
maxSize: 1048576,
log: console.log,
workers: require('os').cpus().length,
validator: path.resolve('./myvalidator'),
mapper: path.resolve('./mymapper'),
prefix: 'mystats.rum.',
forwarder: 'http',
fwdUrl: 'https://stats.example.com/',
fwdMethod: 'POST'
});
Extensions
Boomcatch implements
four extension points
to control
how beacon requests
are handled:
validators,
filters,
mappers
and forwarders.
Read more about them here.
Development
Before sumitting any pull requests,
please ensure that you have
adhered to the contribution guidelines.
To clone the repository:
git clone git@github.com:nature/boomcatch.git
To set up the development environment:
npm install
To lint the code:
npm run lint
To run the unit tests:
npm test
Change log
History
Support
You can have a look at the Springer Nature Frontend Playbook for an explanation of how we support our open source projects.
License
GPL 3
Copyright © 2014, 2015, 2016 Springer Nature