Filter Parameters
Kubecost Cloud supports an advanced filtering language for all APIs.
Filter operators
The supported filter operators are:
:
EqualityFor string fields (e.g. namespace): equality
For slice/array fields (e.g. services): slice contains at least one value equal (equivalent to
~:
)For map fields (e.g. labels): map contains key (equivalent to
~:
)
!:
Inequality, or "not contains" if an array type~:
ContainsFor string fields: contains
For slice fields: slice contains at least one value equal (equivalent to
:
)For map fields: map contains key (equivalent to
:
)
!~:
NotContains, inverse of~:
<~:
ContainsPrefixFor string fields: string starts with
For slice fields: slice contains at least one value that starts with
For map fields: map contains at least one key that starts with
!<~:
NotContainsPrefix, inverse of<~:
~>:
ContainsSuffixFor string fields: strings ends with
For slice fields: slice contains at least one value that ends with
For map fields: map contains at least one key that ends with
!~>:
NotContainsSuffix, inverse of~>:
Filter values are strings surrounded by "
. Multiple values can be separated by commas ,
.
Individual filters can be joined by +
(representing logical AND) or |
(representing logical OR). To use +
and |
in the same filter expression, scope must be denoted via (
and )
. See examples.
Examples
Here are some example filters to see how the filtering language works:
namespace:"kubecost"+container:"cost-model"
Return only results that are in thekubecost
namespace and are for thecost-model
container.cluster:"cluster-one"+label[app]:"cost-analyzer"
Return only results in clustercluster-one
that are labeled withapp=cost-analyzer
.cluster!:"cluster-one"
Ignore results from clustercluster-one
namespace:"kubecost","kube-system"
Return only results from namespaceskubecost
andkube-system
.namespace!:"kubecost","kube-system"
Return results for all namespaces exceptkubecost
andkube-system
.
For example, in an Allocation query:
The format is essentially: <filter field> <filter op> <filter value>
Formal grammar and implementation
To see the filter language's formal grammar and lexer/parser implementation, check out OpenCost's filter package
.
Last updated