summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeaveMyYard <zhukovpavel2001@gmail.com>2023-10-09 10:55:22 +0300
committerLeaveMyYard <zhukovpavel2001@gmail.com>2023-10-09 10:55:22 +0300
commitac1eadac45e7372d77f905c698f7e64808c4da8b (patch)
tree824023ca207c55ac8300eedb48d954b3d76b9136
parent248be94aaa84c7680622b3ecb57a6f934d9165ff (diff)
Add readme requirements for used metrics
-rw-r--r--README.md31
-rw-r--r--robusta_krr/core/models/config.py2
-rw-r--r--robusta_krr/core/runner.py3
3 files changed, 26 insertions, 10 deletions
diff --git a/README.md b/README.md
index c06e354..b7c3ecf 100644
--- a/README.md
+++ b/README.md
@@ -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(