diff options
| author | LeaveMyYard <zhukovpavel2001@gmail.com> | 2023-10-09 10:55:22 +0300 |
|---|---|---|
| committer | LeaveMyYard <zhukovpavel2001@gmail.com> | 2023-10-09 10:55:22 +0300 |
| commit | ac1eadac45e7372d77f905c698f7e64808c4da8b (patch) | |
| tree | 824023ca207c55ac8300eedb48d954b3d76b9136 | |
| parent | 248be94aaa84c7680622b3ecb57a6f934d9165ff (diff) | |
Add readme requirements for used metrics
| -rw-r--r-- | README.md | 31 | ||||
| -rw-r--r-- | robusta_krr/core/models/config.py | 2 | ||||
| -rw-r--r-- | robusta_krr/core/runner.py | 3 |
3 files changed, 26 insertions, 10 deletions
@@ -87,6 +87,20 @@ Read more about [how KRR works](#how-it-works) and [KRR vs Kubernetes VPA](#diff ## Installation +### Requirements + +KRR requires you to have Prometheus, running either on your cluster or centralized. + +Additionally to that, [kube-state-metrics](https://github.com/kubernetes/kube-state-metrics) needs to be running on your cluster, as KRR is dependant on next metrics: + +- `container_cpu_usage_seconds_total` +- `container_memory_working_set_bytes` +- `kube_replicaset_owner` +- `kube_pod_owner` +- `kube_pod_status_phase` + +_Note: If one of last three metrics is absent KRR will still work, but will result in potentially worse results and raise a warning_ + ### With brew (MacOS/Linux): 1. Add our tap: @@ -193,9 +207,10 @@ krr simple -v ``` Other helpful flags: -* `--cpu-min` Sets the minimum recommended cpu value in millicores -* `--mem-min` Sets the minimum recommended memory value in MB -* `--history_duration` The duration of the prometheus history data to use (in hours) + +- `--cpu-min` Sets the minimum recommended cpu value in millicores +- `--mem-min` Sets the minimum recommended memory value in MB +- `--history_duration` The duration of the prometheus history data to use (in hours) More specific information on Strategy Settings can be found using @@ -209,15 +224,14 @@ krr simple --help With the [free Robusta SaaS platform](https://home.robusta.dev/) you can: -* See why KRR recommends what it does -* Sort and filter recommendations by namespace, priority, and more -* Copy a YAML snippet to fix the problems KRR finds +- See why KRR recommends what it does +- Sort and filter recommendations by namespace, priority, and more +- Copy a YAML snippet to fix the problems KRR finds ![Robusta UI Screen Shot][ui-screenshot] <p align="right">(<a href="#readme-top">back to top</a>)</p> - ## How it works ### Metrics Gathering @@ -431,9 +445,10 @@ python krr.py simple -p "https://prom-api.coralogix..." --coralogix_token ## Grafana Cloud managed Prometheus -For Grafana Cloud managed Prometheus you need to specify prometheus link, prometheus user, and an access token of your Grafana Cloud stack. The Prometheus link and user for the stack can be found on the Grafana Cloud Portal. An access token with a `metrics:read` scope can also be created using Access Policies on the same portal. +For Grafana Cloud managed Prometheus you need to specify prometheus link, prometheus user, and an access token of your Grafana Cloud stack. The Prometheus link and user for the stack can be found on the Grafana Cloud Portal. An access token with a `metrics:read` scope can also be created using Access Policies on the same portal. Next, run the following command, after setting the values of PROM_URL, PROM_USER, and PROM_TOKEN variables with your Grafana Cloud stack's prometheus link, prometheus user, and access token. + ```sh python krr.py simple -p $PROM_URL --prometheus-auth-header "Bearer ${PROM_USER}:${PROM_TOKEN}" --prometheus-ssl-enabled ``` diff --git a/robusta_krr/core/models/config.py b/robusta_krr/core/models/config.py index 6e7ae30..3d6aabc 100644 --- a/robusta_krr/core/models/config.py +++ b/robusta_krr/core/models/config.py @@ -138,7 +138,7 @@ class Config(pd.BaseSettings): # NOTE: This class is just a proxy for _config. # Import settings from this module and use it like it is just a config object. -class _Settings(Config): +class _Settings(Config): # Config here is used for type checking def __init__(self) -> None: pass diff --git a/robusta_krr/core/runner.py b/robusta_krr/core/runner.py index f50f55f..3c49634 100644 --- a/robusta_krr/core/runner.py +++ b/robusta_krr/core/runner.py @@ -145,7 +145,8 @@ class Runner: logger.warning( f"Was not able to load any pods for {object} from Prometheus.\n\t" "This could mean that Prometheus is missing some required metrics.\n\t" - "Loaded pods from Kubernetes API instead." + "Loaded pods from Kubernetes API instead.\n\t" + "See more info at https://github.com/robusta-dev/krr#requirements " ) metrics = await prometheus_loader.gather_data( |
