v2.7 and after
Argo Workflows provides an indication of how much resource your workflow has used and saves this information. This is intended to be an indicative but not accurate value.
This is only set if the feature flags is enabled in config.
The calculation is always an estimate, and is calculated by ../util/resource/duration.go based on container duration, specified pod resource requests, limits, or (for memory and CPU) defaults.
Each indicator is divided by a common denominator depending on resource type.
Each resource type has a "base amount" used to normalize usage across containers.
- Ephemeral Storage:
- All others:
The requested fraction of the base amount will be multiplied by the container's run time to get the container's Resource Duration.
For example, if you've requested
100Mi of memory (one tenth of the base amount), and the container
runs 120sec, then the reported Resource Duration will be
12sec * (1Gi memory).
requests are not set for a container, Kubernetes defaults to
limits are not set,
Argo falls back to
100m for CPU and
100Mi for memory.
Note: these are Argo's defaults, not Kubernetes' defaults. For the most meaningful results,
limits for all containers.
A pod that runs for 3min, with a CPU limit of
2000m, no memory request and an
resource limit of
CPU: 3min * 2000m / 1000m = 6min * (1000m cpu) Memory: 3min * 100Mi / 1Gi = 18sec * (1Gi memory) GPU: 3min * 1 / 1 = 2min * (1 nvidia.com/gpu)
Both the web and CLI give abbreviated usage, like
this context, resources like
memory refer to the "base amounts".
memory means "amount of time a resource requested 1Gi of memory." If a container only
uses 100Mi, each second it runs will only count as a tenth-second of
For short running pods (<10s), the memory value may be 0s. This is because the default is
but the denominator is