用于扩展策略的 Spinnaker 和自定义 Cloudwatch 指标
Spinnaker and custom Cloudwatch metrics for scaling policies
我目前正在尝试解决 AWS 中的问题,即 CloudWatch 警报不能包含多个指标(在本例中为 SQS 消息计数)。
场景:
我有一个 ASG,其中包含我的应用程序的一定数量的按需实例。我有另一个 ASG,我计划在繁忙时使用 spot 实例进行扩展。
我想要实现的是,对于我的应用程序,它使用 3 个 SQS 队列
- 如果至少有 1 个队列的消息数超过阈值,则向外扩展 Spot 实例 ASG
- 如果所有队列的消息计数都低于阈值至少 X 分钟,则缩减
为了解决这个问题,我尝试发布一个自定义指标,其中包含有多少队列的消息计数超过特定限制,然后使用该指标来决定是否在我的自动缩放组中进行缩放。
但是......在 Spinnaker 中,似乎没有办法引用自定义指标(至少从 UI 开始)- 我在这里遗漏了一些东西,或者它是不可能的?
据我了解,您只能将指标数据发布到您自己的命名空间 - 尝试发布到任何 'AWS/*' 命名空间都会导致错误?
在您的 settings.js 卡片组文件中,包括以下块:
providers: {
aws: {
// ...
metrics: {
customNamespaces: ['yourcustomnamespace'],
},
// ...
}
}
我认为这在任何地方都没有明确记录 - 您必须深入研究源代码才能找到这一点配置。
我目前正在尝试解决 AWS 中的问题,即 CloudWatch 警报不能包含多个指标(在本例中为 SQS 消息计数)。
场景:
我有一个 ASG,其中包含我的应用程序的一定数量的按需实例。我有另一个 ASG,我计划在繁忙时使用 spot 实例进行扩展。
我想要实现的是,对于我的应用程序,它使用 3 个 SQS 队列
- 如果至少有 1 个队列的消息数超过阈值,则向外扩展 Spot 实例 ASG
- 如果所有队列的消息计数都低于阈值至少 X 分钟,则缩减
为了解决这个问题,我尝试发布一个自定义指标,其中包含有多少队列的消息计数超过特定限制,然后使用该指标来决定是否在我的自动缩放组中进行缩放。
但是......在 Spinnaker 中,似乎没有办法引用自定义指标(至少从 UI 开始)- 我在这里遗漏了一些东西,或者它是不可能的?
据我了解,您只能将指标数据发布到您自己的命名空间 - 尝试发布到任何 'AWS/*' 命名空间都会导致错误?
在您的 settings.js 卡片组文件中,包括以下块:
providers: {
aws: {
// ...
metrics: {
customNamespaces: ['yourcustomnamespace'],
},
// ...
}
}
我认为这在任何地方都没有明确记录 - 您必须深入研究源代码才能找到这一点配置。