Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
@goodwaygroup/lib-hapi-dogstatsd
Advanced tools
Hapi plugin for publishing route stats to DataDog
Please do not run this plugin within tests in your application
This plugin will send metrics regarding route performance on every request to the Hapi server.
For the prefix
, please the name of the service that you are integrating with (neato-service, cool-api, etc)
$ npm install -S @goodwaygroup/lib-hapi-dogstatsd
In your index.js
for the Hapi server, register the plugin:
const HapiDogstatsd = require('@goodwaygroup/lib-hapi-dogstatsd')
// Dogstatsd
if (process.env.DOGSTATSD_HOST && process.env.NODE_ENV !== 'test') {
await server.register({
plugin: HapiDogstatsd,
options: {
host: process.env.DOGSTATSD_HOST,
port: process.env.DOGSTATSD_PORT || 8125,
tags: [`env:${process.env.NODE_ENV || 'development'}`],
prefix: 'neato-service'
}
});
}
When passing a configuration option, it will overwrite the defaults.
host
: The host running the Datadog Daemon with dogstatsd configuredport
: Port for dogstatsd
8125
prefix
: A prefix that will be prepended to all metrics sent to DataDog
hapi
tags
: An array of tags that will be applied to all metrics that are sent
[`env:${process.env.NODE_ENV || 'development'}`]
excludedPaths
: An array of URL paths to ignore sending metrics for.
['/favicon.ico', '/health-check']
excludedTags
: An array of tag keys that will be excluded from the default list of tags added to each metric. The default list of tags is: dns, url_path, route_path, status_code, http_method
[]
To add custom tags specific to a route, use the response.plugin state block to pass tags
to the plugin. These tags will be merged with the default tags that are generated.
response.plugins['dogstatsd'] = { tags: ['custom:tag', 'key:value'] }
To add custom metrics specific to a route, use the response.plugin state block to pass metrics
to the plugin. These metrics will be merged with the default metrics that are generated.
The metrics
will need to have the following structure.
response.plugins.dogstatsd.metrics = [{
type: 'gauge',
name: 'cache.orphans',
value: 123,
tags: [`cache_db:${cache}`]
}, {
type: 'incr',
name: 'cache.hit',
value: null,
tags: [`cache_db:${cache}`]
}]
These tags are set on every request:
const tags = [
`env:${process.env.NODE_ENV || 'development'}`,
`dns:${request.headers.host}`,
`url_path:${request.url.pathname}`,
`route_path:${request.route.path}`,
`status_code:${statusCode}`,
`http_method:${request.method.toUpperCase()}`
];
Example:
[
'end:production',
'dns:github.com',
'url_path:/api/v1/user/34/edit',
'route_path:/api/v1/user/{id}/edit',
'status_code:200',
'http_method:POST'
]
To run tests, just run the following:
npm test
All commits are tested on CircleCI
To run eslint
:
npm run lint
To auto-resolve:
npm run lint:fix
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use milestones and npm
version to bump versions. We also employ git-chglog to manage the CHANGELOG.md. For the versions available, see the tags on this repository.
To initiate a version change:
npm version major|minor|patch
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE file for details
[v1.2.1] - 2021-05-13
<a name="v1.2.0"></a>
FAQs
Hapi plugin for publishing route stats to DataDog
We found that @goodwaygroup/lib-hapi-dogstatsd demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.