Enable metrics for AutoScalingGroups

Those metrics simplify monitoring the created ASGs and are free [0].

Enable them by default.

[0] https://aws.amazon.com/about-aws/whats-new/2016/08/free-auto-scaling-group-metrics-with-graphs/
This commit is contained in:
Johannes Würbach 2018-01-25 18:31:08 +01:00
parent 3c2d9409b7
commit 02855fc13f
No known key found for this signature in database
GPG Key ID: 74DB0F4D956CCCE3
20 changed files with 227 additions and 11 deletions

View File

@ -46,6 +46,10 @@ func (m *MockAutoscaling) CreateAutoScalingGroup(input *autoscaling.CreateAutoSc
return nil, nil
}
func (m *MockAutoscaling) EnableMetricsCollection(input *autoscaling.EnableMetricsCollectionInput) (*autoscaling.EnableMetricsCollectionOutput, error) {
return nil, nil
}
func (m *MockAutoscaling) DescribeAutoScalingGroups(input *autoscaling.DescribeAutoScalingGroupsInput) (*autoscaling.DescribeAutoScalingGroupsOutput, error) {
if len(input.AutoScalingGroupNames) == 0 {
return &autoscaling.DescribeAutoScalingGroupsOutput{

View File

@ -552,10 +552,6 @@ func (m *MockAutoscaling) DisableMetricsCollectionRequest(*autoscaling.DisableMe
return nil, nil
}
func (m *MockAutoscaling) EnableMetricsCollection(*autoscaling.EnableMetricsCollectionInput) (*autoscaling.EnableMetricsCollectionOutput, error) {
log.Fatal("Not implemented")
return nil, nil
}
func (m *MockAutoscaling) EnableMetricsCollectionWithContext(aws.Context, *autoscaling.EnableMetricsCollectionInput, ...request.Option) (*autoscaling.EnableMetricsCollectionOutput, error) {
log.Fatal("Not implemented")
return nil, nil

View File

@ -177,6 +177,18 @@ func (b *AutoscalingGroupModelBuilder) Build(c *fi.ModelBuilderContext) error {
Name: s(name),
Lifecycle: b.Lifecycle,
Granularity: s("1Minute"),
Metrics: []*string{
s("GroupMinSize"),
s("GroupMaxSize"),
s("GroupDesiredCapacity"),
s("GroupInServiceInstances"),
s("GroupPendingInstances"),
s("GroupStandbyInstances"),
s("GroupTerminatingInstances"),
s("GroupTotalInstances"),
},
LaunchConfiguration: launchConfiguration,
}

View File

@ -29,6 +29,21 @@
"Value": "1",
"PropagateAtLaunch": true
}
],
"MetricsCollection": [
{
"Granularity": "1Minute",
"Metrics": [
"GroupMinSize",
"GroupMaxSize",
"GroupDesiredCapacity",
"GroupInServiceInstances",
"GroupPendingInstances",
"GroupStandbyInstances",
"GroupTerminatingInstances",
"GroupTotalInstances"
]
}
]
}
},
@ -61,6 +76,21 @@
"Value": "1",
"PropagateAtLaunch": true
}
],
"MetricsCollection": [
{
"Granularity": "1Minute",
"Metrics": [
"GroupMinSize",
"GroupMaxSize",
"GroupDesiredCapacity",
"GroupInServiceInstances",
"GroupPendingInstances",
"GroupStandbyInstances",
"GroupTerminatingInstances",
"GroupTotalInstances"
]
}
]
}
},

View File

@ -83,6 +83,9 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-complex-example-com"
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "nodes-complex-example-com" {
@ -121,6 +124,9 @@ resource "aws_autoscaling_group" "nodes-complex-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_ebs_volume" "us-test-1a-etcd-events-complex-example-com" {

View File

@ -66,6 +66,9 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-ha-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "master-us-test-1b-masters-ha-example-com" {
@ -92,6 +95,9 @@ resource "aws_autoscaling_group" "master-us-test-1b-masters-ha-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "master-us-test-1c-masters-ha-example-com" {
@ -118,6 +124,9 @@ resource "aws_autoscaling_group" "master-us-test-1c-masters-ha-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "nodes-ha-example-com" {
@ -144,6 +153,9 @@ resource "aws_autoscaling_group" "nodes-ha-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_ebs_volume" "a-etcd-events-ha-example-com" {

View File

@ -78,6 +78,9 @@ resource "aws_autoscaling_group" "bastion-privateweave-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "master-us-test-1a-masters-privateweave-example-com" {
@ -104,6 +107,9 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privateweave-example
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "nodes-privateweave-example-com" {
@ -130,6 +136,9 @@ resource "aws_autoscaling_group" "nodes-privateweave-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_ebs_volume" "us-test-1a-etcd-events-privateweave-example-com" {

View File

@ -66,6 +66,9 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-141-example-
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "nodes-minimal-141-example-com" {
@ -92,6 +95,9 @@ resource "aws_autoscaling_group" "nodes-minimal-141-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_ebs_volume" "us-test-1a-etcd-events-minimal-141-example-com" {

View File

@ -29,6 +29,21 @@
"Value": "1",
"PropagateAtLaunch": true
}
],
"MetricsCollection": [
{
"Granularity": "1Minute",
"Metrics": [
"GroupMinSize",
"GroupMaxSize",
"GroupDesiredCapacity",
"GroupInServiceInstances",
"GroupPendingInstances",
"GroupStandbyInstances",
"GroupTerminatingInstances",
"GroupTotalInstances"
]
}
]
}
},
@ -61,6 +76,21 @@
"Value": "1",
"PropagateAtLaunch": true
}
],
"MetricsCollection": [
{
"Granularity": "1Minute",
"Metrics": [
"GroupMinSize",
"GroupMaxSize",
"GroupDesiredCapacity",
"GroupInServiceInstances",
"GroupPendingInstances",
"GroupStandbyInstances",
"GroupTerminatingInstances",
"GroupTotalInstances"
]
}
]
}
},

View File

@ -66,6 +66,9 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "nodes-minimal-example-com" {
@ -92,6 +95,9 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_ebs_volume" "us-test-1a-etcd-events-minimal-example-com" {

View File

@ -88,6 +88,9 @@ resource "aws_autoscaling_group" "bastion-privatecalico-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "master-us-test-1a-masters-privatecalico-example-com" {
@ -114,6 +117,9 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privatecalico-exampl
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "nodes-privatecalico-example-com" {
@ -140,6 +146,9 @@ resource "aws_autoscaling_group" "nodes-privatecalico-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_ebs_volume" "us-test-1a-etcd-events-privatecalico-example-com" {

View File

@ -88,6 +88,9 @@ resource "aws_autoscaling_group" "bastion-privatecanal-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "master-us-test-1a-masters-privatecanal-example-com" {
@ -114,6 +117,9 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privatecanal-example
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "nodes-privatecanal-example-com" {
@ -140,6 +146,9 @@ resource "aws_autoscaling_group" "nodes-privatecanal-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_ebs_volume" "us-test-1a-etcd-events-privatecanal-example-com" {

View File

@ -88,6 +88,9 @@ resource "aws_autoscaling_group" "bastion-privatedns1-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "master-us-test-1a-masters-privatedns1-example-com" {
@ -114,6 +117,9 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privatedns1-example-
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "nodes-privatedns1-example-com" {
@ -140,6 +146,9 @@ resource "aws_autoscaling_group" "nodes-privatedns1-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_ebs_volume" "us-test-1a-etcd-events-privatedns1-example-com" {

View File

@ -88,6 +88,9 @@ resource "aws_autoscaling_group" "bastion-privatedns2-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "master-us-test-1a-masters-privatedns2-example-com" {
@ -114,6 +117,9 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privatedns2-example-
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "nodes-privatedns2-example-com" {
@ -140,6 +146,9 @@ resource "aws_autoscaling_group" "nodes-privatedns2-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_ebs_volume" "us-test-1a-etcd-events-privatedns2-example-com" {

View File

@ -88,6 +88,9 @@ resource "aws_autoscaling_group" "bastion-privateflannel-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "master-us-test-1a-masters-privateflannel-example-com" {
@ -114,6 +117,9 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privateflannel-examp
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "nodes-privateflannel-example-com" {
@ -140,6 +146,9 @@ resource "aws_autoscaling_group" "nodes-privateflannel-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_ebs_volume" "us-test-1a-etcd-events-privateflannel-example-com" {

View File

@ -88,6 +88,9 @@ resource "aws_autoscaling_group" "bastion-privatekopeio-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "master-us-test-1a-masters-privatekopeio-example-com" {
@ -114,6 +117,9 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privatekopeio-exampl
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "nodes-privatekopeio-example-com" {
@ -140,6 +146,9 @@ resource "aws_autoscaling_group" "nodes-privatekopeio-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_ebs_volume" "us-test-1a-etcd-events-privatekopeio-example-com" {

View File

@ -88,6 +88,9 @@ resource "aws_autoscaling_group" "bastion-privateweave-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "master-us-test-1a-masters-privateweave-example-com" {
@ -114,6 +117,9 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privateweave-example
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "nodes-privateweave-example-com" {
@ -140,6 +146,9 @@ resource "aws_autoscaling_group" "nodes-privateweave-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_ebs_volume" "us-test-1a-etcd-events-privateweave-example-com" {

View File

@ -70,6 +70,9 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-sharedsubnet-example
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "nodes-sharedsubnet-example-com" {
@ -96,6 +99,9 @@ resource "aws_autoscaling_group" "nodes-sharedsubnet-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_ebs_volume" "us-test-1a-etcd-events-sharedsubnet-example-com" {

View File

@ -66,6 +66,9 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-sharedvpc-example-co
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_autoscaling_group" "nodes-sharedvpc-example-com" {
@ -92,6 +95,9 @@ resource "aws_autoscaling_group" "nodes-sharedvpc-example-com" {
value = "1"
propagate_at_launch = true
}
metrics_granularity = "1Minute"
enabled_metrics = ["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
}
resource "aws_ebs_volume" "us-test-1a-etcd-events-sharedvpc-example-com" {

View File

@ -44,6 +44,9 @@ type AutoscalingGroup struct {
Subnets []*Subnet
Tags map[string]string
Granularity *string
Metrics []*string
LaunchConfiguration *LaunchConfiguration
}
@ -196,6 +199,17 @@ func (_ *AutoscalingGroup) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *Autos
if err != nil {
return fmt.Errorf("error creating AutoscalingGroup: %v", err)
}
_, err = t.Cloud.Autoscaling().EnableMetricsCollection(&autoscaling.EnableMetricsCollectionInput{
AutoScalingGroupName: e.Name,
Granularity: e.Granularity,
Metrics: e.Metrics,
})
if err != nil {
return fmt.Errorf("error enabling metrics collection for AutoscalingGroup: %v", err)
}
} else {
request := &autoscaling.UpdateAutoScalingGroupInput{
AutoScalingGroupName: e.Name,
@ -294,6 +308,8 @@ type terraformAutoscalingGroup struct {
MinSize *int64 `json:"min_size,omitempty"`
VPCZoneIdentifier []*terraform.Literal `json:"vpc_zone_identifier,omitempty"`
Tags []*terraformASGTag `json:"tag,omitempty"`
MetricsGranularity *string `json:"metrics_granularity,omitempty"`
EnabledMetrics []*string `json:"enabled_metrics,omitempty"`
}
func (_ *AutoscalingGroup) RenderTerraform(t *terraform.TerraformTarget, a, e, changes *AutoscalingGroup) error {
@ -302,6 +318,8 @@ func (_ *AutoscalingGroup) RenderTerraform(t *terraform.TerraformTarget, a, e, c
MinSize: e.MinSize,
MaxSize: e.MaxSize,
LaunchConfigurationName: e.LaunchConfiguration.TerraformLink(),
MetricsGranularity: e.Granularity,
EnabledMetrics: e.Metrics,
}
for _, s := range e.Subnets {
@ -364,13 +382,19 @@ type cloudformationASGTag struct {
Value *string `json:"Value"`
PropagateAtLaunch *bool `json:"PropagateAtLaunch"`
}
type cloudformationASGMetricsCollection struct {
Granularity *string `json:"Granularity"`
Metrics []*string `json:"Metrics"`
}
type cloudformationAutoscalingGroup struct {
//Name *string `json:"name,omitempty"`
LaunchConfigurationName *cloudformation.Literal `json:"LaunchConfigurationName,omitempty"`
MaxSize *int64 `json:"MaxSize,omitempty"`
MinSize *int64 `json:"MinSize,omitempty"`
VPCZoneIdentifier []*cloudformation.Literal `json:"VPCZoneIdentifier,omitempty"`
Tags []*cloudformationASGTag `json:"Tags,omitempty"`
LaunchConfigurationName *cloudformation.Literal `json:"LaunchConfigurationName,omitempty"`
MaxSize *int64 `json:"MaxSize,omitempty"`
MinSize *int64 `json:"MinSize,omitempty"`
VPCZoneIdentifier []*cloudformation.Literal `json:"VPCZoneIdentifier,omitempty"`
Tags []*cloudformationASGTag `json:"Tags,omitempty"`
MetricsCollection []*cloudformationASGMetricsCollection `json:"MetricsCollection,omitempty"`
LoadBalancerNames []*cloudformation.Literal `json:"LoadBalancerNames,omitempty"`
}
@ -378,8 +402,14 @@ type cloudformationAutoscalingGroup struct {
func (_ *AutoscalingGroup) RenderCloudformation(t *cloudformation.CloudformationTarget, a, e, changes *AutoscalingGroup) error {
tf := &cloudformationAutoscalingGroup{
//Name: e.Name,
MinSize: e.MinSize,
MaxSize: e.MaxSize,
MinSize: e.MinSize,
MaxSize: e.MaxSize,
MetricsCollection: []*cloudformationASGMetricsCollection{
{
Granularity: e.Granularity,
Metrics: e.Metrics,
},
},
LaunchConfigurationName: e.LaunchConfiguration.CloudformationLink(),
}