title: Why does a CloudWatch request count alarm created via CloudFormation yield "Insufficient Data"?
body: <p>I am using <a href="http://aws.amazon.com/cloudformation/">AWS CloudFormation</a> for my application and am trying to make a request count alarm via a respective template. I can successfully make the request count alarm directly for the <a href="http://aws.amazon.com/elasticloadbalancing/">Elastic Load Balancer</a>, but the alarm state within <a href="http://aws.amazon.com/cloudwatch/">Amazon CloudWatch</a> is  "insufficient data", when I'm trying to achieve the same via a CloudFormation template. </p>
  
  
  
  <p>My ELB JSON is: </p>
  
  <pre class="lang-js prettyprint-override"><code>"ElasticLoadBalancer": {
    "Type": "AWS::ElasticLoadBalancing::LoadBalancer",
    "Properties": {
      "AvailabilityZones": {
        "Fn::GetAZs": ""
      },
      "Listeners": [
        {
          "LoadBalancerPort": "80",
          "InstancePort": {
            "Ref": "WebServerPort"
          },
          "Protocol": "HTTP"
        }
      ],
      "HealthCheck": {
        "Target": {
          "Fn::Join": [
            "",
            [
              "HTTP:",
              {
                "Ref": "WebServerPort"
              },
              "/"
            ]
          ]
        },
        "HealthyThreshold": "3",
        "UnhealthyThreshold": "5",
        "Interval": "30",
        "Timeout": "5"
      }
    }
  },
  </code></pre>
  
  <p>My alarm JSON is: </p>
  
  <pre class="lang-js prettyprint-override"><code>"StatisticAlarmLow": {
    "Type": "AWS::CloudWatch::Alarm",
    "Properties": {
      "AlarmDescription": "Alarm if there are too many unhealthy hosts.",
      "MetricName": "RequestCount",
      "Namespace": "AWS/ELB",
      "Statistic": "Sum",
      "Period": "60",
      "EvaluationPeriods": "2",
      "ComparisonOperator": "LessThanThreshold",
      "Threshold": "1500",
      "AlarmActions": [
        {
          "Ref": "WebServerScaleUpPolicy"
        }
      ],
      "Unit": "Count",
      "Dimensions": [
        {
          "Name": "AutoScalingGroupName",
          "Value": {
            "Ref": "WebServerGroup"
          }
        }
      ]
    }
  },
  
  "StatisticAlarmHigh": {
    "Type": "AWS::CloudWatch::Alarm",
    "Properties": {
      "AlarmDescription": "Alarm if there are too many unhealthy hosts.",
      "MetricName": "RequestCount",
      "Namespace": "AWS/ELB",
      "Statistic": "Sum",
      "Period": "60",
      "EvaluationPeriods": "2",
      "ComparisonOperator": "GreaterThanThreshold",
      "Threshold": "4000",
      "AlarmActions": [
        {
          "Ref": "WebServerScaleUpPolicy"
        }
      ],
      "Unit": "Count",
      "Dimensions": [
        {
          "Name": "AutoScalingGroupName",
          "Value": {
            "Ref": "WebServerGroup"
          }
        }
      ]
    }
  },
  </code></pre>
  
  <p>From the above it generates the alarm with "insufficient data" as a state. Can anybody tell me what could be the reason? And if there is any sample/example template available for using request count alarm on ELB, it will be appreciated. </p>