Cost Explorer

The Cost Explorer is CostPilot’s primary tool for understanding where your Kubernetes spend is going. It lets you slice and dice costs by any dimension, apply filters, and drill down into specific workloads.

Dimensions

A dimension is the attribute you’re grouping costs by. CostPilot supports the following built-in dimensions:

DimensionGroups by
ClusterEach connected Kubernetes cluster
NamespaceKubernetes namespace
WorkloadDeployment, StatefulSet, DaemonSet, or Job name
QoS classKubernetes Quality of Service class (Guaranteed, Burstable, BestEffort)
Instance typeNode instance type (e.g. m5.xlarge, e2-standard-4)
RegionCloud provider region
Pricing typeOn-demand, spot, or reserved

Label dimensions

In addition to built-in dimensions, any Kubernetes label can be used as a dimension. If you’ve configured label mappings in Settings → Labels, they appear in the dimension picker with their display names (e.g. “Team”, “Environment”, “Cost Centre”).

Label dimensions let you answer questions like:

  • “How much is the API team spending?”
  • “What does our production environment cost compared to staging?”
  • “Which cost centre owns the largest share of infrastructure?”

Filtering

You can apply filters to narrow results. Filters are additive (AND logic):

  • Cluster — Scope to one or more clusters
  • Namespace — Include only specific namespaces
  • Label values — e.g. team=backend or environment=production
  • Time range — Controls the period for all metrics

Filters are preserved when you switch dimensions, so you can explore a filtered subset across multiple groupings without re-entering criteria.

Tip

To see the full cost breakdown for a single team across all their namespaces, set a label filter (e.g. team=platform) and switch between the Namespace and Workload dimensions.

Drill-down

Clicking any row in the Cost Explorer opens a detail panel showing:

  • Cost trend — Daily spend for the selected period
  • Resource usage — CPU and memory usage vs. requests over time
  • Efficiency score — For this specific dimension value
  • Top pods — The highest-cost individual pods within this group

This lets you quickly identify which specific workloads are driving cost within a namespace or team.

Time ranges

The time range picker is shared across the Dashboard and Cost Explorer:

RangeBest for
Last 24hInvestigating a recent deployment
Last 7dWeekly review (default)
Last 30dMonthly chargeback reporting
Last 90dQuarterly trend analysis
Note

CostPilot stores metric data at three resolutions: 1-minute buckets for the last 24 hours, 1-hour buckets for 1–7 days, and 1-day buckets for data older than 7 days. The resolution used is automatically selected based on your time range.

Understanding the cost columns

Each row in the Cost Explorer shows:

ColumnDescription
CostTotal spend for the period
CPU costPortion attributable to CPU allocation
Memory costPortion attributable to memory allocation
Idle costSpend on unused capacity within this group
EfficiencyResource usage ÷ resource requests
TrendChange vs. previous equivalent period

QoS class breakdown

The QoS class dimension is particularly useful for identifying cost risk. Pods in the BestEffort class have no resource requests or limits — they’ll be the first to be evicted under node pressure, but they also appear to cost very little because CostPilot allocates costs based on requests.

If you see a large proportion of BestEffort pods, consider adding resource requests to get accurate cost attribution.

Spot vs. on-demand

The Pricing type dimension lets you see how much you’re saving by using spot or preemptible instances. CostPilot fetches current instance pricing from each cloud provider and applies it at the node level, so your cost data automatically reflects spot savings.