Configuration Options
Use the parameters below to customize the agent’s behavior:General Configuration Example
Here is a comprehensive example demonstrating how to construct youratatus_values.yaml file:
Filter Prefixes
Allcontainer_include* and container_exclude* options (except _log_lines) require a prefix that tells the agent what to match against. The prefix is followed by the value to match, with no space after the colon. The value can be an exact string or a regular expression.
On Kubernetes, use
kube:, kube_pod:, and kube_container:. The name: and image: prefixes are intended for Docker hosts and behave inconsistently on Kubernetes:name:does not reliably match pods. Logs are filtered, but pod-level metrics continue to be collected for every pod in the cluster. Usekube_pod:instead.image:filters metrics only and has no effect on log collection. Usekube_container:to filter logs.
Matching Pod Names
Pods created by a Deployment carry a generated suffix that changes on every rollout (for exampleapi-7d9f8b6c5d-x4k2p). If you match the full pod name, monitoring stops at your next deployment. Match the stable prefix instead:
kube_container:^nginx$.
Filtering by Multiple Values
To filter by multiple values, separate them with spaces:preprod and staging namespaces, and excludes everything else.
Filters within a single option always combine with OR, so data is matched if it matches any of them. This applies across different prefixes too, so mixing prefixes widens the filter rather than narrowing it:
Requiring Two Conditions
Each option is applied independently, so data must satisfy every option that applies to it. To require two conditions, combine the general option with the logs and metrics options:What the Filters Apply To
These filters apply to data belonging to a specific pod or container. Node-level and cluster-level data is not tied to any pod and continues to be collected.
This means your cluster health monitoring stays intact while pod-level detail narrows to the workloads you select.
Container Include & Exclude Filtering
Usecontainer_include and container_exclude to control what is monitored for both logs and metrics. You can filter by namespace, pod name, or container name.
- Filter by namespace: monitor only the
preprodandstagingnamespaces, and exclude theprodnamespace:
- Filter by pod name: monitor only pods belonging to the
my-appworkload:
- Filter by container name: monitor everything except the
sidecar-proxycontainer:
Container Metrics Filtering
Usecontainer_include_metrics and container_exclude_metrics to control which containers are monitored for metrics only. Log collection is unaffected.
- Filter by pod name: collect metrics only from the
my-appworkload, and exclude thesidecar-proxycontainer:
- Filter by namespace: collect metrics only from the
productionnamespace, and exclude thetestingnamespace:
Container Logs Filtering
Usecontainer_include_logs and container_exclude_logs to control which containers are monitored for logs only. Metric collection is unaffected.
- Filter by container name: collect logs only from
my-app, and exclude thelog-routercontainer:
- Filter by pod name: collect logs only from pods belonging to the
my-appworkload:
The
image: prefix has no effect on log collection. Use kube_container: or kube_pod: to filter logs.Log Line Filtering
You can reduce log volume by filtering individual log lines at the agent level using regular expressions. Unlike the container-level filters above, these options match against the content of each log line, not the container name or namespace. The(?i) prefix in a regular expression enables case-insensitive matching.
- Collect only log lines containing the word “error” (case-insensitive):
- Drop log lines containing the word “healthcheck” (case-insensitive):
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 youratatus_values.yaml file.
To run the agent on every active node across your cluster, configure a wildcard toleration using the Exists operator: