KO
|
EN
gitlite โ search
Search
#javascript
#python
#hacktoberfest
#react
#ai
#typescript
#llm
#go
#golang
#android
#machine-learning
#rust
#deep-learning
#linux
istio-cost-analyzer
โ 15
Open GitHub โ
Cluster Egress Cost Analysis
Download README (.md)
Explore Similar Repositories
Deep-Learning
:
SBU Deep Learning Course Materials and Codes
gambiconf.github.io
:
๐ The Blow Your Mind Conference
terraform-aws-storagegateway
:
No description available.
NovaAI
:
A language learning chatbot
pf-doa-localization-simulations
:
Online Indoor Localization Using DOA of Wireless Signals
// repository documentation
Was this content helpful?
โ 0
(0 ratings)
Select Rating:
โ
โ
โ
โ
โ
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
istio-cost-analyzer
?
Download (.md)
# Istio Cost Analyzer The Istio Cost Analyzer is a tool that allows you to analyze the costliest workload links in your cluster. It relies on Kubernetes/Istio and Prometheus to gather data, and uses publicly-available cloud egress rates to estimate the overall egress costs of your services. ## Usage To use this on your kubernetes cluster, make sure you have a kubeconfig in your home directory, and make sure Istio is installed on your cluster, with the prometheus addon enabled. You must also have a `HEALTHY` Istio Operator available. ### Installation To install the `istio-cost-analyzer` binary: ```shell go install github.com/tetratelabs/istio-cost-analyzer@latest ``` ### Setup The setup command does a few things: - Edits Istio Operator config to add custom prometheus metrics (a `destination_locality` label on an Istio metric). - Creates a Mutating Webhook that gets called when a new deployment is created. This mutating webhook runs in a pod and has associated RBAC permissions, Services, etc. - Labels existing pods & deployments in said `--targetNamespace`. You can either run the following command and have a webhook handle everything all existing Deployments and all Deployments created in the future: ``` istio-cost-analyzer setup ``` | Flag | Description | Default Value | |:------------------|:---------------------------------------------------------------------------------------------------------------------:|------------------------:| | targetNamespace | Namespace which the cost analyzer will watch/analyze | `default` | | analyzeAll (`-a`) | Adding this flag will cause the cost analyzer to analyze all namespaces. Don't set this if you set `targetNamespace`. | `false` | | cloud | Cloud on which your cluster is running (node info varies cloud to cloud -- inferred from Node info) | Inferred from Node info | | analyzerNamespace | Namespace in which cost analyzer config will exist (you usually don't need to set this) | `istio-system` | ## Running Run: ``` istio-cost-analyzer analyze ``` | Flag | Description | Default Value | |:--------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------:| | cloud | Cloud on which your cluster is running (node info varies cloud to cloud). Options are `gcp` or `aws`. If you are on GCP or AWS, you don't need to set this as it is inferred. | Inferred from Node info | | prometheusNamespace | Namespace in which the prometheus pod exists (you usually don't need to set this) | `istio-system` | | pricePath | For non-standard aws/gcp rates (on-prem, negotiated rates). If you set this, you don't need to set `cloud`. See `/pricing` (you usually don't need to set this) | None | | details | Extended table view that shows both destination and source workload/locality, instead of just source. | `false` | | start | RFC3999 UTC timestamp that indicates from when to start analyzing data. | 0 (beginning) | | end | RFC3999 UTC timestamp that indicates to when to stop analyzing data. | `time.Now()` | The output should look like (without `--details`): ``` Total: <$0.01 SOURCE WORKLOAD SOURCE LOCALITY COST productpage-v1 us-west1-b <$0.01 reviews-v2 us-west1-b - reviews-v3 us-west1-b - ``` With `--details`: ``` Total: <$0.01 SOURCE WORKLOAD SOURCE LOCALITY DESTINATION WORKLOAD DESTINATION LOCALITY TRANSFERRED (MB) COST productpage-v1 us-west1-b details-v1 us-west1-c 0.173250 <$0.01 productpage-v1 us-west1-b reviews-v1 us-west1-b 0.058500 - productpage-v1 us-west1-b reviews-v2 us-west1-b 0.056250 - productpage-v1 us-west1-b reviews-v3 us-west1-b 0.058500 - reviews-v2 us-west1-b ratings-v1 us-west1-b 0.056150 - reviews-v3 us-west1-b ratings-v1 us-west1-b 0.058400 - ``` ### Cleanup If you want to restart installation of the tool or don't want it in your cluster anymore, you can run: ``` istio-cost-analyzer destroy ``` You must set the `--analyzerNamespace` flag if you set it in the `setup` command. You must also edit your Istio Operator config to remove the custom prometheus metrics. (you can use `-o` to do that here, but it's unstable) - add for latency: