Honeycomb is built for modern dev teams to see and understand how their production systems are behaving. Our goal is to give engineers the observability they need to eliminate toil and delight their users. This helm chart will install the Honeycomb Kubernetes Agent.
helm repo add honeycomb https://honeycombio.github.io/helm-charts
helm install honeycomb honeycomb/honeycomb --set honeycomb.apiKey=YOUR_API_KEY
- Helm 3.0+
By default, this chart will collect metrics from all nodes and pods, and watchers configuration to capture logs from the following system components:
- kube-controller-manager
- kube-scheduler
helm repo add honeycomb https://honeycombio.github.io/helm-charts
helm install honeycomb honeycomb/honeycomb --set honeycomb.apiKey=YOUR_API_KEY
The agent watchers can be configured via this chart's watchers
property. Create a yaml file with your
Honeycomb API key and custom agent configuration similar to the following:
honeycomb:
apiKey: YOUR_API_KEY
watchers:
- dataset: kubernetes-logs
labelSelector: component=kube-controller-manager
namespace: kube-system
parser: glog
- dataset: kubernetes-logs
labelSelector: component=kube-scheduler
namespace: kube-system
parser: glog
Then use this yaml file when installing the chart
helm repo add honeycomb https://honeycombio.github.io/helm-charts
helm install honeycomb honeycomb/honeycomb --values my-values-file.yaml
An optional configuration is to capture Kubernetes events using the
Heptio Eventrouter component.
Configure the Eventrouter to use the stdout
sink for logs, and you can capture them
with this watchers configuration
watchers:
- dataset: k8s-eventrouter
labelSelector: app=eventrouter
namespace: olly
parser: json
processors:
- drop_field:
field: old_event
See docs for more information on agent watchers configuration.
The values.yaml file contains information about all configuration options for this chart.
The only requirement is a Honeycomb API Key. This can be provided either by setting honeycomb.apiKey
or by setting honeycomb.existingSecret
to the name of an existing opaque secret resource with your API Key specified in the honeycomb.existingSecretKey
value.
You can obtain your API Key by going to your Account profile page inside of your Honeycomb instance.
The following table lists the configurable parameters of the Honeycomb chart, and their default values.
Parameter | Description | Default |
---|---|---|
honeycomb.apiKey |
Honeycomb API Key | YOUR_API_KEY |
honeycomb.apiHost |
API URL to sent events to | https://api.honeycomb.io |
honeycomb.existingSecret |
Name of an existing secret resource to use containing your Honeycomb API Key | nil |
honeycomb.existingSecretKey |
Name of the key in your existing secret above that contains the Honeycomb API Key | api-key |
watchers |
An array of watchers configuration snippets for the log agent (docs). Set this to an empty array [] to disable log collection. |
kube-controller-manager, kube-scheduler |
verbosity |
Agent log level | info |
splitLogging |
Send all log levels to stdout instead of stderr | false |
additionalFields |
Additional fields to add to each event | nil |
retryBufferSize |
Retry buffer size. Set to 0 to disable retry buffer. | 0 |
retryBufferExpire |
Optional timer to expire retry buffer events, if retry buffer is enabled | 0 |
metrics.enabled |
Enable and install metrics collection as events into Honeycomb | true |
metrics.dataset |
Name of Honeycomb dataset for Kubernetes metrics | kubernetes-metrics |
metrics.clusterName |
Name of Kubernetes cluster to use for metrics | k8s-cluster |
metrics.metricGroups |
Resource groups (node, pod, container, volume) to collect metrics from | node, pod |
metrics.interval |
Scrape interval in duration units (10s for 10 seconds, 1m for 1 minute) | nil |
metrics.omitLabels |
Pod labels to omit from being emitted as fields in metrics | nil |
metrics.additionalFields |
Additional fields to add to each metric (overrides global setting) | nil |
nameOverride |
String to partially override honeycomb.fullname template with a string (will append the release name) | nil |
fullnameOverride |
String to fully override honeycomb.fullname template with a string | nil |
imagePullSecrets |
Specify docker-registry secret names as an array | [] |
image.repository |
Honeycomb Agent Image name | honeycombio/honeycomb-kubernetes-agent |
image.tag |
Honeycomb Image tag (leave blank to use app version) | nil |
image.pullPolicy |
Honeycomb agent image pull policy | IfNotPresent |
terminationGracePeriodSeconds |
How many seconds to wait before terminating agent on shutdown | 30 |
podAnnotations |
Pod annotations | {} |
podLabels |
Pod labels | {} |
podSecurityContext |
Security context for pod | {} |
securityContext |
Security context for container | {} |
resources |
CPU/Memory resource requests/limits | {} |
nodeSelector |
Node labels for pod assignment | {} |
tolerations |
Tolerations for pod assignment | [] |
affinity |
Map of node/pod affinities | {} |
priorityClassName |
Pod priority for Honeycomb agent | nil |
rbac.create |
Specify whether RBAC resources should be created and used | true |
serviceAccount.create |
Specify whether a ServiceAccount should be created | true |
serviceAccount.name |
The name of the ServiceAccount to create | Generated using the honeycomb.fullname template |
serviceAccount.annotations |
Annotations to be applied to ServiceAccount | {} |
The default log collection now includes all standard Kubernetes services.
The following Kubernetes components will have logs collection enabled by default:
api-server, controller, scheduler, coredns, kube-proxy.
You can override this using the watchers
parameter.
The agent.
prefix for properties has been deprecated.
All properties under this space have been moved to the root level.
In a future release the agent.
prefix will no longer work for any property.
The Metrics functionality has been completely revamped. No more dependencies on external components (heapster). As such the default dataset has changed, and other properties associated with metrics are updated.
The Events functionality has been removed in favor of using the Heptio event router.