New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

statsd-proxy

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

statsd-proxy

Fast proxy for etsy/statsd.

latest
Source
npmnpm
Version
0.0.9
Version published
Weekly downloads
4
33.33%
Maintainers
1
Weekly downloads
 
Created
Source

Statsd-Proxy

Proxy for etsy/statsd.

Why

etsy/statsd comes with a proxy in nodejs, and we are running it on a single server, proxing a statsd cluster via an udp port. But we found that this nodejs proxy is losing packets, up to 30~40% sometimes!

Cpus are idle but packets are being lost. In our case, one api call makes one statsd request, maybe the single udp socket is too busy.

We tried to use SO_REUSEPORT on the original nodejs proxy, this enables us to bind multiple udp sockets on a single port, but nodejs(or libuv) has disabled this option, and golang just dosen't have a method setsockopt().

Therefore, we made it in C.

Features

  • Zero dependencies.
  • Very very fast.
  • Multiple threading.
  • Reuseport support.
  • Packet aggregation.

Limitations

  • Only available on linux 3.9+ (option SO_REUSEPORT)
  • Only support udp server and udp backends.

Requirements

Linux 3.9+.

Build

Just make:

$ make

or install it via npm:

npm install statsd-proxy -g

Usage

Usage:
  ./statsd-proxy -f ./path/to/config.cfg
Options:
  -h, --help        Show this message
  -v, --version     Show version
  -d, --debug       Enable debug logging
Copyright (c) https://github.com/hit9/statsd-proxy

License

MIT (c) Chao Wang hit9@github.com 2015.

Keywords

statsd

FAQs

Package last updated on 02 Dec 2015

Did you know?

Socket

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.

Install

Related posts