Send Kubernetes metrics with Helm and the OpenTelemetry Collector
Overview
logzio-otel-k8s-metrics allows you to ship metrics from your Kubernetes cluster to Layerlog with the OpenTelemetry collector.
This chart is a fork of the opentelemetry-collector Helm chart. The main repository for Layerlog helm charts are logzio-helm.
It is also dependent on the kube-state-metrics, prometheus-node-exporter and prometheus-pushgateway charts, which are installed by default.
To disable the dependency during installation, set kubeStateMetrics.enabled, nodeExporter.enabled or pushGateway.enabled to false.
Sending logs from nodes with taints
If you want to ship logs from any of the nodes that have a taint, make sure that the taint key values are listed in your in your daemonset/deployment configuration as follows:
tolerations:
- key:
operator:
value:
effect:
To determine if a node uses taints as well as to display the taint keys, run:
kubectl get nodes -o json | jq ".items[]|{name:.metadata.name, taints:.spec.taints}"
Standard configuration for Linux nodes
Add logzio-helm repo to your helm repo list
helm repo add logzio-helm https://logzio.github.io/logzio-helm
helm repo update
Deploy the Helm chart
-
Configure the relevant parameters in the following code:
helm install --namespace <<YOUR-NAMESPACE>> \
--set secrets.MetricsToken=<<METRICS-SHIPPING-TOKEN>> \
--set secrets.ListenerHost="https://<<LISTENER-HOST>>:8053" \
--set secrets.p8s_logzio_name=<<ENV-TAG>> \
logzio-otel-k8s-metrics logzio-helm/logzio-otel-k8s-metrics
-
Replace <<YOUR_NAMESPACE>> with the required namespace.
-
Replace <<METRICS-SHIPPING-TOKEN>> with a token for the Metrics account you want to ship to.
Look up your Metrics token.
-
Replace <<LISTENER-HOST>> with the host for your region. For example, listener.layerlog.com if your account is hosted on AWS US East, or listener-nl.layerlog.com if hosted on Azure West Europe.
-
Replace <<ENV-TAG>> with the name for the environment’s metrics, to easily identify the metrics for each environment.
-
Run the code.
Check Layerlog for your metrics
Give your metrics some time to get from your system to ours.
Log in to your Layerlog account and navigate to the current instructions page inside the Layerlog app. Install the pre-built dashboard to enhance the observability of your metrics.
To view the metrics on the main dashboard, log in to your Layerlog Metrics account, and open the Layerlog Metrics tab.
Customizing Helm chart parameters
You can use the following options to update the Helm chart parameters:
-
Specify parameters using the --set key=value[,key=value] argument to helm install
-
Edit the values.yaml
-
Overide default values with your own my_values.yaml and apply it in the helm install command.
Example:
helm install logzio-otel-k8s-metrics logzio-helm/logzio-otel-k8s-metrics -f my_values.yaml
Customize the metrics collected by the Helm chart
The default configuration uses the Prometheus receiver with the following scrape jobs:
- Cadvisor: Scrapes container metrics
- Kubernetes service endpoints: These jobs scrape metrics from the node exporters, from Kube state metrics, from any other service for which the
prometheus.io/scrape: true annotaion is set, and from services that expose Prometheus metrics at the /metrics endpoint.
To customize your configuration, edit the config section in the values.yaml file.
Uninstalling the Chart
The uninstall command is used to remove all the Kubernetes components associated with the chart and to delete the release.
To uninstall the logzio-otel-k8s-metrics deployment, use the following command:
helm uninstall logzio-otel-k8s-metrics