微软Azure自动缩放-韩元';无法识别被动规则的目标

微软Azure自动缩放-韩元';无法识别被动规则的目标,azure,azure-worker-roles,autoscaling,azure-autoscaling-block,Azure,Azure Worker Roles,Autoscaling,Azure Autoscaling Block,我正在尝试为我的Azure应用程序设置自动缩放解决方案。我能让它对特鲁尔有反应,但就是不能让它对特鲁尔有反应 我正在使用诊断记录来自自动缩放的所有消息(使用p&p Autoscaling块),这样我可以看到autoscaler看到了我的反应性规则,但没有识别目标。例如: <TraceSource>Autoscaling General</TraceSource> <Object>Rule match. [BEGIN DATA] {"EvaluationId":

我正在尝试为我的Azure应用程序设置自动缩放解决方案。我能让它对特鲁尔有反应,但就是不能让它对特鲁尔有反应

我正在使用诊断记录来自自动缩放的所有消息(使用p&p Autoscaling块),这样我可以看到autoscaler看到了我的反应性规则,但没有识别目标。例如:

<TraceSource>Autoscaling General</TraceSource>
<Object>Rule match.
[BEGIN DATA]
{"EvaluationId":"67281173-085f-49a1-95f8-0b9c50a4de7d",
 "MatchingRules":
    [{"RuleName":"Default constraints for all roles",
      "RuleDescription":"SLA rule",
      "Targets":["JobsRole","RESTAPI","Web"]},
     {"RuleName":"scaleWebApi",
      "RuleDescription":"Scale up when cpu average over 5%",
      "Targets":[]},
     {"RuleName":"scaledownWebApi",
      "RuleDescription":"Scale down when cpu avg under 5%",
      "Targets":[]}]}
</Object>
自动缩放常规
规则匹配。
[开始数据]
{“评估ID”:“67281173-085f-49a1-95f8-0b9c50a4de7d”,
“匹配规则”:
[{“RuleName”:“所有角色的默认约束”,
“规则描述”:“SLA规则”,
“目标”:[“JobsRole”、“RESTAPI”、“Web”]},
{“RuleName”:“scaleWebApi”,
“规则说明”:“当cpu平均值超过5%时放大”,
“目标”:[]},
{“RuleName”:“scaledownWebApi”,
“规则说明”:“当cpu平均值低于5%时,按比例缩小”,
“目标”:[]}]}
其中,反应性规则定义为:

<reactiveRules>
  <rule name="scaleWebApi"
      description="Scale up when cpu average over 5%" rank="2" enabled="true">
    <when>
       <any>
          <greater operand="RESTAPI_CPU_Avg" than="5" />
       </any>
    </when>
    <actions>
        <scale target="RESTAPI" by="1" />
    </actions>
  </rule>
  <rule name="scaledownWebApi" rank="2" enabled="true"
       description="Scale down when cpu avg under 5%">
    <when>
      <all>
        <lessOrEqual operand="RESTAPI_CPU_Avg" than="5" />
      </all>
    </when>
    <actions>
      <scale target="RESTAPI" by="-1" />
    </actions>
  </rule>
</reactiveRules>

我的孩子们——他们真的很管用

<constraintRules>
  <rule name="Default constraints for all roles"
       description="SLA rule" enabled="true" rank="0">
    <actions>
      <range target="JobsRole" min="1" max="5" />
      <range target="RESTAPI" min="1" max="5" />
      <range target="Web" min="1" max="5" />
    </actions>
  </rule>
</constraintRules>

和我的服务配置文件(仅角色的一部分)



问题可能是什么?我如何尝试从中找出原因?

我对WASABi不太了解,但我想推荐一个azure管理和自动扩展SaaS服务—Opstera的AzureOps,它将通过简单直观的UI为您实现这一点。没有额外的基础设施或编码。请在这里查看我们

谢谢

Opstera支持

我无法在您的配置中发现任何错误。但请确保目标名称是正确的。它应该是角色名。我想建议你检查一下它是否有用

致以最良好的祝愿


徐明。

服务信息存储似乎有问题(假设操作数设置正确,但您没有复制问题中的操作数)

在您定义的每个角色中,都需要将wadStorageAccountName设置为“友好”名称,而不是实际的连接字符串。然后在同一个XML文件中,定义存储帐户真正指向的位置:

  <services>
    <service dnsPrefix="<dns>" slot="Production" scalingMode="Scale">
      <roles>
        <role alias="JobsRole" roleName="JobsRole" wadStorageAccountName="MyStorageFriendlyName" />
        <role alias="RESTAPI" roleName="RESTAPI" wadStorageAccountName="MyStorageFriendlyName" />
      </roles>
    </service>
    <service dnsPrefix="<dns>" slot="Production" scalingMode="Scale">
      <roles>
            <role alias="Web" roleName="Web" wadStorageAccountName="MyStorageFriendlyName" />
      </roles>
    </service>
  </services>
  <storageAccounts>
    <storageAccount alias="MyStorageFriendlyName" connectionString="DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>">
    </storageAccount>
  </storageAccounts>

还请注意,此帐户必须是目标应用程序(在本例中为RESTAPI角色)上载其性能计数器(经常)的帐户,否则它将找不到任何数据以便聚合并将其保存为数据点

此外,请确保操作数将聚合定义为在至少10分钟的时间窗口内进行,否则由于所有这些进程的异步性质(在一侧上载性能计数器数据,然后聚合数据并生成数据点,然后在单独的进程上评估规则),然后,在评估规则时,您可能无法获得比5分钟更新的新数据(这就是为什么至少10是一个好数字的原因)


我希望所有这些都有助于澄清芥末中发生了什么。谢谢

谢谢,但我的解决方案已经准备好了——就这最后一步:)我已经检查了几十次了。。。一切都好。此外,我的constraintRules使用完全相同的名称,而且确实有效。(我已经在我的问题中添加了配置的其余部分-也许会有帮助)您的数据点存储在哪里?存储模拟器或真实存储服务?所有真实存储。没有任何东西在模拟器上运行。感谢您的认真回复。我又检查了一遍—我使用了您建议的存储帐户—所以可能不是那个帐户。但我注意到—我没有配置RESTAPI以向该存储发送任何性能—所以可能是它吗?请告诉我有关配置性能计数器的一些信息好吗?没错,您必须配置目标角色才能上载性能计数器数据。以下是如何:
  <services>
    <service dnsPrefix="<dns>" slot="Production" scalingMode="Scale">
      <roles>
        <role alias="JobsRole" roleName="JobsRole" wadStorageAccountName="MyStorageFriendlyName" />
        <role alias="RESTAPI" roleName="RESTAPI" wadStorageAccountName="MyStorageFriendlyName" />
      </roles>
    </service>
    <service dnsPrefix="<dns>" slot="Production" scalingMode="Scale">
      <roles>
            <role alias="Web" roleName="Web" wadStorageAccountName="MyStorageFriendlyName" />
      </roles>
    </service>
  </services>
  <storageAccounts>
    <storageAccount alias="MyStorageFriendlyName" connectionString="DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>">
    </storageAccount>
  </storageAccounts>