Configuration

Learn how to configure Optimize Live and review recommendations

The purpose of this guide is to get you started with StormForge Optimize Live.

If you encounter any issues or require assistance, please reach out to us via Slack or contact us at support@stormforge.io.

Creating an Application

Once you have authenticated and logged into StormForge, you will see a menu on the left side of the browser with “Applications” and “Clusters”. If you have installed the StormForge Optimize Live controller you will see your cluster in the “Clusters” section. Proceed to create your first application in the “Applications” section by clicking “Add Application” on the top right.

An application is a grouping of resources (deployments, statefulsets) that can live in one or many namespaces.

Enabling Recommendations

Once the application is created, you can click on the application and enable recommendations in the Optimize Live tab.

Container Resources

Container Resources allows you to select the deployments to be optimized within the application. The CPU section provides guardrails for the recommendation in millicores. The memory section provides these guardrails in Mi.

For both CPU and memory, a risk tolerance can be chosen. A low risk tolerance will minimize the risk of hitting a resource limit. A high risk tolerance will maximize utilization at the cost of occasionally hitting a resource limit. Note that Optimize Live provides also a resource limit to avoid CPU throttling even when the tolerance setting is high. To avoid potential out of memory (OOM) errors, consider choosing a low tolerance setting for memory.

Recommendation Frequency

The recommendation frequency defines the frequency at which the deployable configurations are made. The recommendations can be either deployed manually or automatically. Manual setting requires the user to press “Approve Recommendation” while automatic deploys the recommendations in the cluster at the frequency set by the user.

Deploying Recommendations

After enabling Optimize Live, a set of components will be created inside the stormforge-system namespace in your cluster. It will take a few moments to produce the recommendations for your application.

The recommendations can be deployed directly in the cluster by clicking “Apply Recommendations”.

You can get updated recommendations using “refresh”. You can also update the configuration for these configurations at anytime.

Reviewing Recommendations

In StormForge you can inspect the most recent recommendations. A Grafana dashboard also exists in the stormforge-system to visualize the history of recommendations. This can be accessed through the grafana service and port-forwarding.

ulimit -n 65535; kubectl port-forward -n stormforge-system svc/grafana 3000:80

The Optimize Live dashboard shows detailed information for the CPU and memory of the selected workloads. The current resource requests, limits, and utilization are displayed along with our recommended values. You can filter by application, namespace, workload/deployment and container.

Export Recommendations

The CLI allows to export the latest recommendations grouped for an application as a patch:

  • stormforge patch application-name to patch the resource directly
  • stormforge patch application-name -f deployment.yml to output the patched resource definition
  • or stormforge patch application-name --directory . to write patch files compatible with kubectl patch --path-file

For example stormforge patch my-redis-app -f redis.yaml uses the latest recommendations from the StormForge API to patch the redis manifest.

Last modified April 19, 2023