首页 > 解决方案 > 如何使用 json 文件将数据点添加到 TargetTracking Scaling 中的 aws cloudwatch 中的警报?

问题描述

所以我使用 TargetTracking Scaling 通过使用两个命令来扩展我的 aws sagemaker 端点,它们是:-

1. aws application-autoscaling register-scalable-target --service-namespace sagemaker --resource-id endpoint/{}/variant/AllTraffic --scalable-dimension sagemaker:variant:DesiredInstanceCount --min-capacity {} --max-capacity {}".format(endpoint_name,ENDPOINT_INSTANCE_MIN_COUNT,ENDPOINT_INSTANCE_MAX_COUNT)) 

“此命令用于注册端点以进行自动缩放”

2.  aws application-autoscaling put-scaling-policy --policy-name myscalablepolicy --policy-type TargetTrackingScaling --resource-id endpoint/{}/variant/AllTraffic --service-namespace sagemaker --scalable-dimension sagemaker:variant:DesiredInstanceCount --target-tracking-scaling-policy-configuration file://file.json".format(endpoint_name))

“这用于通过从 file.json 文件中获取配置,将目标跟踪缩放实际添加到 aws sagemaker 端点”

这是我的 file.json 文件的内容

{
  "TargetValue": 50,
  "CustomizedMetricSpecification": {
    "MetricName": "CPUUtilization",
    "Namespace": "/aws/sagemaker/Endpoints",
    "Dimensions": [
      {
        "Name": "EndpointName",
        "Value": "debitscore-2019-12-17-10-26-16-605"
      },
      {
        "Name": "VariantName",
        "Value": "AllTraffic"
     }
    ],
    "Statistic": "Average"
  },
  "ScaleOutCooldown": 60,
  "ScaleInCooldown": 10,
  "DisableScaleIn": false
}

所以它工作正常,但问题出在 AWS

  1. 运行第二个命令后配置了两个警报,一个是高电平,一个是低电平,参考见附图。还有它是如何决定将低警报设置为 45% 的,我只提到 file.json 文件中的目标值,在这种情况下为 50。

在此处输入图像描述

  1. 如何像这样在警报中添加数据点,它在 15 分钟内占用 15 个数据点,在 3 分钟内占用 3 个数据点。

标签: amazon-web-servicesendpointamazon-sagemaker

解决方案


  1. 高阈值和低阈值基于您的目标跟踪扩展策略中的 TargetValue,由 AWS 在您将扩展策略放在可扩展目标上时确定。高阈值和低阈值分别用于确定您何时向外扩展和何时扩展端点变体。

  2. 看起来您正在根据 CPUUtilization 进行扩展。该指标的数据点应由 SageMaker 为您的终端节点自动填充。请参阅此处的“处理作业、训练作业、批量转换作业和端点实例指标”下的 CPUUtilization


推荐阅读