Refinery is designed to sit within your infrastructure where all sources of Honeycomb events can reach it. A standard deployment will have a cluster of servers running Refinery accessible via a load balancer. Refinery instances must be able to communicate with each other to concentrate traces on single servers.
For the quickest way to get started using Refinery:
To begin, your Refinery cluster requires a minimum of 2 servers with:
linux/amd64
or linux/arm64
operating systemWe recommend increasing the amount of RAM and the number of cores after your initial set-up. Use our scaling and troubleshooting documentation to learn more.
Running on containers? We have a Docker image available on Docker Hub.
Find our latest release of Refinery for your operating system and architecture on GitHub.
Use the command line script below to download the latest released .rpm
asset for x86_64
from GitHub, install, and then run Refinery:
curl -L -O https://github.com/honeycombio/refinery/releases/download/latest/refinery-${VERSION}.x86_64.rpm
rpm -ivh refinery-${VERSION}.x86_64.rpm
systemctl start refinery.service
In the above example, we use systemctl
to run the Refinery service.
Logs can be found at /var/log/journal/refinery.service.log
.
The recommended way to run Refinery on Kubernetes is with its Helm chart.
Add the Honeycomb Helm repository.
helm repo add honeycomb https://honeycombio.github.io/helm-charts
Update the Honeycomb repository to ensure helm
is aware of the latest versions.
helm repo update refinery honeycomb/refinery
Install the latest version of the Refinery Helm chart with default values.
helm install refinery honeycomb/refinery
To install a specific version or override the default values, refer to Refinery Helm chart documentation to learn more about configuration.
The Refinery executable has the following command line flags:
-c
, --config=
etc/refinery/config.toml
)-r
, --rules_config=
/etc/refinery/rules.toml
)-v
, --version
-d
, --debug
localhost:6060
and :6069
by default).
Can be used with a debug service, which allows you to use pprof
to visualize and analyze profiling data.-h
, --help
Note: Be sure to keep configuration in-sync between the Refinery processes, so that your traces are consistent.
Ensure that your Refinery cluster(s) meet the minimum system requirements.
We recommend that your list of Refinery peers be configured through Redis (see Redis-based peer management). The Redis server can be small since it only maintains the list of peers. Should the Redis service become unavailable, Refinery instances will continue to use their last known peer list for inter-peer communication.
Refinery does not currently support Redis Cluster or the Redis Sentinel protocol.
For services that are currently sending events directly to Honeycomb’s API, update these services' Honeycomb API Host
property to be the URL for your Refinery cluster’s load balancer to start sampling events with Refinery.
The default configuration at installation will allow you to run Refinery without any other changes. Be sure to run Refinery in Dry Run Mode to verify your configuration before dropping traffic.
As you start to tune the service to your needs, you will need to make changes to Refinery’s configuration:
/etc/refinery/config.toml
.
Read our documentation on all available configuration options.
See GitHub for a Refinery Configuration example file.If installing Refinery with a DEB or RPM package, the service expects the configuration file to appear at /etc/refinery/refinery.toml
.
/etc/refinery/rules.toml
and controls sampling method and rates.
Read our documentation on all supported sampling methods and their associated configuration.
See GitHub for a Sampling Rules example file.As you modify, check out our scaling and troubleshooting documentation.
Did you find what you were looking for?