Kubecost vs. Opencost
Yesterday, I talked about using Kubecost and Opencost to break down Kubernetes costs by namespace, product, service, etc.
I've evaluated the two tools and ultimately decided to go with Kubecost.
Opencost is based on Kubecost's cost-allocation engine, so they're very similar under the hood. Some of the setup documentation for Opencost references Kubecost. Generally, what this means is Kubecost will have more features than Opencost since it is developed for profit.
- Has a basic free plan with 14-day metric retention
- Multi-cluster views with a $449+/m business plan
This is a feature that Opencost doesn't have. If you pay for Kubecost and install it on all your clusters, you can have a unified view of your cost breakdowns.
- Cost savings ideas based on your actual usage
- Support for paid plans
- Better interface and reporting
- Open-source and vendor-neutral.
- Completely free
- You can run OpenCost as a Prometheus exporter.
The side-effects of doing this mean you can create custom alerts in Grafana, alert manager, or Datadog.
One thing I'll mention that I've found is it's easier to install a production-ready Kubecost helm chart than it is for Opencost. Both of these services will install Prometheus server and node exporter. This results in an additional overhead for your cluster. Kubecost's helm chart comes configured with the minimum metrics it needs to scrape, while Opencost's doesn't.