Skip to main content
Version: Cloud

Monitor Kubernetes with sfPod

sfPod overview

sfPod is a collector that is installed on Kubernetes and runs as a DaemonSet on each worker node. It monitors the following elements of a Kubernetes environment:

  • Kubernetes metrics

    • Cluster metrics
    • Host metrics
    • Pod metrics
    • Container metrics
    • Events
    • Kubernetes services health– Kubelet, Kube-Proxy, API Server, Controller Manager, Core DNS
  • Kubernetes cluster logs

  • Poll Prometheus Exporters running on application pods

  • Pod Application Logs

Supported Architectures

x86_64(amd64)

arm64/aarch64

sfPod installation

Below is short video explaining the sfPOD installation steps

Step 1: Create a Cloud profile

Create a cloud profile in SnappyFlow (or use an existing profile) and copy the profile key to use it while installing the sfPod in your cluster.

Step 2: Add Snappyflow helm chart

Login to any node that has network connectivity to Kubernetes master node and run the following commands

helm repo add snappyflow https://snappyflow.github.io/helm-charts 
helm repo list
helm repo update

Step 3: Installing helm chart

kubectl create namespace sfagent 
helm install <name> snappyflow/sfagent --set config.project_name=<my-project-name> --set config.app_name=<my-cluster-name> --set config.key=<profile key> --set architecture=<arch> --namespace sfagent
Action Required
  • <my-cluster-name>  - Replace with an unique name. Cluster will be discovered by this name on the Snappyflow

  • <profile key>  - Replace with profile key copied from SnappyFlow

  • <arch> - Replace with architecture of the kube cluster

note

<arch> is an optional parameter. x86_64(amd64) is enabled by default. To monitor arm64/aarch64, add arm64 in the helm chart configuration.

Restricted sfPod Configuration

By default, sfPod is installed with a comprehensive configuration mode that actively monitors all elements. You have the option to choose a limited configuration by using specific flags, enabling them to monitor either cluster logs or cluster metrics exclusively.

Control Flags

Cluster Monitoring

Enable or disable Cluster Monitoring by using the following flag.

--set config.cluster_monitoring=true/false
  • true enables Cluster Monitoring.

  • false to disables Cluster Monitoring and enables Prometheus Polling and Centralized Application Log Monitoring.

Drop Cluster Logs

Disable Cluster Monitoring by using the following flag.

--set config.node_agent.drop_cluster_logs=true =>

Document Type

sfPod organizes data collected by plugin/documentType. Example: pod, node, container, cluster_stats etc. The detailed list of document types can be viewed in Browse Data section of a Kubernetes cluster. You can disable collection of a documentType using the following flag.

--set config.<doc_type>= false

App View

By default, sfPod sends metrics for pods and containers that have projectName and appName tags to both the Cluster Index and Project Index, resulting in duplicated metric data. This feature is enabled to enhance correlation of Application and Infrastructure data. App view feature can be switched-off by using the following flag.

--set config.app_view= true

Parsing

To enable or disable Single Line Parsing (skipping multiline log parsers) with supported parser plugins in SnappyFlow, use the following flag.

--set node_agent.basic_parsing=On/Off

Metadata

The Kubernetes cluster efficiently manages the scheduling and deletion of numerous pod and container deployments within a brief timeframe. By default, the metadata server utilized is the apiserver. However, to prevent any potential apiserver throttling in a busy cluster, kubelet can be employed. Use the following flag to set the usage of kubelet server for retrieving pod/container metadata.

--set node_agent.kubelet_for_metadata=On/Off