Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

You can use values from  metrics or custom made metrics of your own to auto scale your EC Deployment. These metrics are retrieved by the Prometheus server and then published to Kubernetes by the Prometheus Adapter. To learn more about how metrics work in   as well as what else you can use these metrics for, refer to Using Metrics (34.0).

Before you get started using these metrics for scaling your EC Deployment, you will need to install the Prometheus server and the Prometheus Adapter. You can find the steps for these in Setting up Prometheus(34.0).

Our EC Deployment uses the Horizontal Pod Autoscaler (HPA) to scale itself. When creating an EC Deployment, you will have the option to enable Autoscaling. From this option, you will then be able to set the minimum and maximum number of replicas for the HPA to scale as well as the threshold that determines when the HPA should scale. These thresholds can be set using the metrics exposed by the Prometheus Adapter. By default, the only threshold that you can use for autoscaling your EC Deployment is the CPU Utilization. Here is an example of how you can use the metrics to autoscale your ECD, Autoscaling your ECD with Workflow Throughput(4.0) - Jaws.

...

As the EC Deployment uses the metrics that are exposed by the Prometheus Adapter, it is crucial for you to know how to use the adapter to expose the metrics that you want the EC Deployment to use to scale itself. You can refer to Creating Custom Metrics on Prometheus Adapter(34.0) for more information about how to create your own metrics.

Page Properties
hiddentrue

Scaling

This is an example of how you can use your custom metrics in an EC Deployment. The metrics field is the same as for a normal horizontal pod autoscaler. Read more about autoscaling here: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/ .

Note that a target type of “AverageValue” means the average value of all the running pods. Scale happens when the value is above the target averageValue.

Info

This section of the document is written based on creating ECDs with yaml and not via Desktop. There is no out-of-the-box yaml file to create an ECD, so for this method you should create your very first ECD using Desktop and then extract the yaml and edit it as below. Eventually Desktop might include options to set non-CPU based scaling, although in the first releases of

We don't have a way to export this inline extension.
version 10 only CPU based scaling is supported by Desktop.

Code Block
autoscale: 
  minReplicas: 1 
  maxReplicas: 3 
  metrics: 
  - type: Pods 
    pods: 
      metric: 
        name: com_digitalroute_wf_Workflow_Pico_Heap_Memory_Used_Percentage 
      target: 
        type: AverageValue 
        averageValue: "3" 
  - type: Pods 
    pods: 
      metric: 
        name: workflows_throughput_avg 
      target: 
        type: AverageValue

        averageValue: "50" 

...