0

Am using the Cloudwatch plugin for Newrelic found here: https://github.com/brettcave/newrelic_aws_cloudwatch_plugin

For some reason though, my responses are all being returned nil:

[2014-09-19 12:43:15 UTC] INFO: Retrieving statistics: {:namespace=>"AWS/EC2", :metric_name=>"DiskWriteOps", :statistic=>"Sum", :unit=>"Count", :dimension=>{:name=>"AutoScalingGroupName", :value=>"AUTOSCALER-BackendGroup-19N8SYDEIPGYV"}, :period=>60, :start_time=>"2014-09-19T12:41:15Z", :component_name=>"AUTOSCALER-BackendGroup-19N8SYDEIPGYV", :end_time=>"2014-09-19T12:41:45Z", :dimensions=>[{:name=>"AutoScalingGroupName", :value=>"AUTOSCALER-BackendGroup-19N8SYDEIPGYV"}]}
[2014-09-19 12:43:15 UTC] INFO: Retrieved statistics: {:datapoints=>[], :label=>"DiskWriteOps", :response_metadata=>{:request_id=>"3cb0c8a6-3ffa-11e4-aea1-91b035de76f7"}}
[2014-09-19 12:43:15 UTC] DEBUG: metric_name: DiskWriteOps, statistic: Sum, unit: Count, response: nil

This is the code as described in the above link, which conforms to the aws cloudwatch list-metrics --namespace "AWS/EC2" command output.

module NewRelicAWS
 module Collectors
    class ASG < Base
      def initialize(access_key, secret_key, region, options)
        super(access_key, secret_key, region, options)
        @asg = AWS::AutoScaling.new(
          :access_key_id => @aws_access_key,
          :secret_access_key => @aws_secret_key,
          :region => @aws_region
        )
      end

  def groups
    @asg.groups
  end

  def metric_list
    [
      ["CPUUtilization", "Average", "Percent"],
      ["DiskReadOps", "Sum", "Count"],
      ["DiskWriteOps", "Sum", "Count"],
      ["DiskWriteBytes" , "Sum", "Bytes"],
      ["NetworkIn", "Sum", "Bytes"],
      ["NetworkOut", "Sum", "Bytes"]
    ]
  end

  def collect
    data_points = []
    groups.each do |group|
      metric_list.each do |(metric_name, statistic, unit)|
        data_point = get_data_point(
          :namespace   => "AWS/EC2",
          :metric_name => metric_name,
          :statistic   => statistic,
          :unit        => unit,
          :dimension   => {
            :name  => "AutoScalingGroupName",
            :value => group.name
          },
          :period => 60,
          :start_time => (Time.now.utc-120).iso8601,
          :component_name => group.name
        )
        NewRelic::PlatformLogger.debug("metric_name: #{metric_name}, statistic: #{statistic}, unit: #{unit}, response: #{data_point.inspect}")
        unless data_point.nil?
          data_points << data_point
        end
      end
    end
    data_points
  end
end
end
end

This is nearly identical to the EC2 plugin, though the EC2 plugin works. Any idea what could be wrong?

Thanks in advance.

stephencoetzee
  • 123
  • 1
  • 1
  • 7

1 Answers1

0

Does the official New Relic plugin work for you? https://github.com/newrelic-platform/newrelic_aws_cloudwatch_plugin

karlpcrowley
  • 526
  • 2
  • 7