The Atatus Kubernetes Agent automatically discovers all namespaces and workloads upon installation. This guide outlines the various configuration options available to help you manage data collection, filter logs, and control pod scheduling across your cluster.
All configurations must be added to your atatus_values.yml file.
Configuration Options
Use the parameters below to customize the agent's behavior:
| Option | Description |
|---|---|
| license_key | Your Atatus Infrastructure license key. |
| logs_enabled | Set to true to enable log monitoring. |
| cluster_name | A descriptive name to identify your Kubernetes cluster in the Atatus dashboard. |
| log_level | The internal logging level for the Atatus agent (info, debug, warning, error). |
| container_include | Allowlist of containers to monitor (both logs and metrics). |
| container_exclude | Denylist of containers to exclude from monitoring (both logs and metrics). |
| container_include_metrics | Allowlist of containers to collect metrics from. |
| container_exclude_metrics | Denylist of containers to exclude from metric collection. |
| container_include_logs | Allowlist of containers to collect logs from. |
| container_exclude_logs | Denylist of containers to exclude from log collection. |
| container_include_log_lines | Include specific log lines that match the provided regular expressions. |
| container_exclude_log_lines | Exclude specific log lines that match the provided regular expressions. |
| daemonset | Configures parameters for the agent's DaemonSet deployment. |
| tolerations | Kubernetes tolerations allowing pods to be scheduled on nodes with matching taints. |
General Configuration Example
Here is a comprehensive example demonstrating how to construct your atatus_values.yaml file:
# atatus_values.yaml
atatus:
license_key: "lic_infra_*************"
logs_enabled: true
cluster_name: "my-production-cluster"
log_level: "info"
# Include/Exclude by namespace
container_include: kube:preprod kube:staging
container_exclude: kube:prod
# Include/Exclude metrics by container name
container_include_metrics: name:my-app
container_exclude_metrics: name:sidecar-proxy
# Include/Exclude logs by image
container_include_logs: image:my-app-image
container_exclude_logs: image:fluentd
# Log line filtering
container_include_log_lines:
- '(?i)error'
container_exclude_log_lines:
- '(?i)healthcheck'
daemonset:
enabled: true
tolerations:
- operator: "Exists"
Filter Prefixes
Each include/exclude option accepts a value with a prefix that determines the filter type:
| Prefix | Matches By | Example |
|---|---|---|
kube: |
Kubernetes namespace | kube:production |
name: |
Container name | name:my-app |
image: |
Container image | image:nginx |
Container Include & Exclude Filtering
Use these options to include or exclude containers from both log and metric collection. You can filter by namespace, container name, or image.
container_include: kube:preprod kube:staging
container_exclude: kube:prod
container_include: name:my-app
container_exclude: name:sidecar-proxy
container_include: image:nginx
container_exclude: image:fluentd
Container Metrics Filtering
Use these options to include or exclude containers from metric collection only. Log collection remains unaffected.
container_include_metrics: name:my-app
container_exclude_metrics: name:sidecar-proxy
container_include_metrics: kube:production
container_exclude_metrics: kube:testing
Container Logs Filtering
Use these options to include or exclude containers from log collection only. Metric collection remains unaffected.
container_include_logs: name:my-app
container_exclude_logs: name:log-router
container_include_logs: image:my-app-image
container_exclude_logs: image:fluentd
Log Line Filtering
You can reduce log volume by filtering container logs at the agent level. Use regular expressions to include or exclude specific log patterns.
- To include log lines that match the regular expression
(?i)error:
container_include_log_lines:
- '(?i)error'
- To exclude log lines that match the regular expression
(?i)healthcheck:
container_exclude_log_lines:
- '(?i)healthcheck'
Scheduling the Agent on Tainted Nodes
Kubernetes uses taints to restrict which pods can run on specific nodes (e.g., GPU or system nodes). To allow the Atatus Infrastructure Agent to run on tainted nodes, configure tolerations under the daemonset section in your atatus_values.yaml file.
To run the agent on every active node across your cluster, configure a wildcard toleration using the Exists operator:
daemonset:
enabled: true
tolerations:
- operator: "Exists"
Target Specific Node Pools
If you prefer to explicitly target specialized node pools instead of bypassing all taints, define selective tolerations.
daemonset:
enabled: true
tolerations:
# System node pools
- key: "CriticalAddonsOnly"
operator: "Exists"
# GPU nodes
- key: "sku"
operator: "Equal"
value: "gpu"
effect: "NoSchedule"
# Spot or preemptible nodes
- key: "node.kubernetes.io/instance-type"
operator: "Equal"
value: "spot"
effect: "NoSchedule"
# Windows nodes (if applicable)
- key: "node.kubernetes.io/os"
operator: "Equal"
value: "windows"
effect: "NoSchedule"
+1-415-800-4104