bitdriftlabs / pulse

bitdrift observability proxy
Other
68 stars 2 forks source link

Pulse

Pulse is an observability proxy built for very large metrics infrastructures. It derives ideas from previous projects in this space including statsite and statsrelay, while offering a modern API driven configuration and hitless configuration reloading similar to that offered by Envoy.

While OTel Collector, Fluent Bit, and Vector are all excellent projects that offer some level of metrics support, they are lacking when it comes to scaling very large metrics infrastructures, primarily around:

This project fills those gaps. Pulse has also been heavily optimized for performance. It is deployed in production in clusters processing hundreds of millions of metrics per second.

High level features

Deployment types

Many different deployment types are possible with Pulse. Some of these are described below to give an idea of the possibilities:

Getting started

See examples/ for various configuration examples. These should provide a good base of understanding around what Pulse can provide when coupled with the canonical Protobuf configuration specification.

Documentation

The project is currently very light on documentation which is something we would like to rectify moving forward. The best documentation sources are:

VRL tester

VRL programs are used in various parts of the proxy, in particular inside the mutate processor. We provide a binary that can be used for testing VRL programs. See here for more information.

Admin endpoint

The proxy supports a local admin endpoint that exposes the following endpoints:

Depending on configuration the following additional endpoints are available:

Docker images

We do not currently provide numbered releases. This may change in the future. We build x64/arm64 multi-arch images for each commit which are published to public ECR. The docker images contain both the pulse-proxy and pulse-vrl-tester binaries.

License

The source code is licensed using PolyForm Shield. If you are an end user, broadly you can do whatever you want with this code. See the License FAQ for more information.

Support

For questions and support feel free to join bitdrift Slack and ask questions in the #pulse room. For commercial support or to discuss options for a managed control plane which will handle automatic metric discovery and blocking, contact us at info@bitdrift.io to discuss.