HoneyByte: Kubernetes + Honeycomb

HoneyByte: Kubernetes + Honeycomb

 

The new Honeycomb Kubernetes agent is out! This post describes how infrastructure metrics contribute to observability, and then walks you through the steps to start sending your own Kubernetes data into Honeycomb. Follow the steps to start observing your infrastructure in production!

Infrastructure observability

Honeycomb is about events–application events. We help you gain insight into the customer’s experience: what did their journey through your application’s services look like? With Honeycomb you can debug your application code in production and understand how your code affects that experience. Still, your code runs on some kind of infrastructure somewhere. If the infrastructure is under-sized, or improperly configured, it can affect your customer’s experience in ways outside your code’s reach.

Kubernetes is the platform of choice to run container workloads, and Honeycomb has long provided means for you to capture and parse application logs from pods running in those containers. Now, Honeycomb’s Kubernetes agent also provides capabilities to collect performance metrics and state from nodes, pods, containers, and volumes in your Kubernetes environment. Yes, metrics in Honeycomb.

True observability can not be achieved without understanding the customer experience, but if your infrastructure can affect that experience then it’s crucial to have all the proper data to observe it. In a perfect world, application events also include current runtime information such as CPU load, and memory consumption. However, capturing this system-level data from your code can take significant effort. Additionally, other parts of your infrastructure outside of the runtime will play into your application’s performance–things like pod status or container restarts. Given these challenges, we updated our agent to help complete your observability journey.


What You Get

The Honeycomb Kubernetes agent generates resource events. That is, it will emit a single event for each collected resource on every collection cycle. The agent will collect CPU, memory, file system, network, and uptime metrics from all nodes, pods, and containers. It will also collect volume stats from volumes attached to running pods. Capturing runtime metrics doesn’t provide the entire picture. The agent will also capture current status, phase, and restart details for pods and containers. Labels associated with all resources are also added to each event.

Try It Out!

Getting up and running with the Honeycomb Kubernetes agent is just a few quick steps. Honeycomb provides a Helm chart (version 3 or greater) to make it easy to install and configure the agent in your environment. If Helm isn’t an option in your environment you can still get up and running with kubectl commands.

Install with Helm

To install the Helm chart you need the Honeycomb repo configured which you can do with this command

helm repo add honeycomb https://honeycombio.github.io/helm-charts

After the repo is configured you can install the agent with you Honeycomb API key.

helm install honeycomb honeycomb/honeycomb --set honeycomb.apiKey=YOUR_API_KEY

The Helm chart offers several configuration options. You can learn more about them here.

Install with kubectl

You can use the quickstart manifest provided with the agent to get up and running. Before installing the quickstart manifest you need to create a Kubernetes secret containing your API key.

kubectl create secret generic -n default honeycomb --from-literal=api-key=YOUR_API_KEY

With your API key configured in a Kubernetes secret you can install the quickstart manifest

kubectl apply -f https://raw.githubusercontent.com/honeycombio/honeycomb-kubernetes-agent/main/examples/quickstart.yam

To configure the installation, you can modify the ConfigMap entry as part of the quickstart manifest.

Configuration

By default the agent will collect metrics from nodes and pods only every 10 seconds. You can configure which resources are collected, how often they are collected, labels to omit, and more. See our agent configuration documentation for more details on how to configure the agent.


We’re all distributed systems engineers now. Combine application-level insights from instrumenting your code with valuable data on the health of your infrastructure. Learn more about metrics in Honeycomb: download Getting Started with Honeycomb Metrics.