class Appdynamics::Metric

Attributes

controller[R]
name[RW]
parent[R]
type[RW]

Public Class Methods

from_hash(hsh, controller, parent) click to toggle source
# File lib/appdynamics/metric.rb, line 24
def self.from_hash hsh, controller, parent
    Metric.new controller, parent, hsh
end
new(controller, parent, attrs) click to toggle source
# File lib/appdynamics/metric.rb, line 6
def initialize controller, parent, attrs
    @controller = controller
    @parent = parent
    attrs.keys.each do |key|
        self.send "#{key}=", attrs[key]
    end
end

Public Instance Methods

build_metrics_tree!(tab_level = 0) click to toggle source
# File lib/appdynamics/metric.rb, line 69
def build_metrics_tree! tab_level = 0
    return if leaf?
    puts "#{'    ' * tab_level}Building tree for #{name} (#{type})"
    metrics.each do |m|
        m.build_metrics_tree!(tab_level + 1)
    end
end
child_by_name(nam) click to toggle source
# File lib/appdynamics/metric.rb, line 59
def child_by_name nam
    metrics.select{|metric|
        metric.name == nam
    }.first
end
data(start_time, end_time, rollup = false) click to toggle source
# File lib/appdynamics/metric.rb, line 93
def data start_time, end_time, rollup = false
    raw_data = controller.metric_data_for(self, start_time, end_time, rollup).first
    raw_data["metricValues"]
end
find_by_name(nam) click to toggle source
# File lib/appdynamics/metric.rb, line 49
def find_by_name nam
    return self if name == nam
    metric = nil
    metrics.each do |m|
        metric = m.find_by_name nam
        break unless metric.nil?
    end
    metric
end
metrics() click to toggle source
# File lib/appdynamics/metric.rb, line 65
def metrics
    @metrics ||= controller.metrics_for self
end
metrics=(metrics) click to toggle source
# File lib/appdynamics/metric.rb, line 43
def metrics= metrics
    @metrics = metrics.map {|metric|
        Metric.new @controller, self, metric
    }
end
path() click to toggle source
# File lib/appdynamics/metric.rb, line 28
def path
    return @path unless @path.nil?
    ar = [self.name]
    node = self
    while node.parent.class == Appdynamics::Metric && node = node.parent
        ar.unshift node.name
    end
    @path = ar
    @path
end
path=(pat) click to toggle source
# File lib/appdynamics/metric.rb, line 39
def path= pat
    @path = pat
end
relative_route(data_requested = false) click to toggle source
# File lib/appdynamics/metric.rb, line 77
def relative_route data_requested = false
    rel_path = "#{parent.relative_route(data_requested)}"
    case parent
        when Appdynamics::Metric
            rel_path += "|#{name}"
        when Appdynamics::Application
            if data_requested
                rel_path += "/metric-data"
            else
                rel_path += "/metrics/"
            end
            rel_path += "?metric-path=#{name}"
    end
    rel_path
end
to_hash() click to toggle source
# File lib/appdynamics/metric.rb, line 14
def to_hash
    hsh = {
        name: @name,
        type: @type
    }
    hsh.merge!({path: path})
    hsh.merge!({metrics: @metrics.map{|metric| metric.to_hash}}) if @metrics
    hsh
end

Protected Instance Methods

leaf?() click to toggle source
# File lib/appdynamics/metric.rb, line 99
def leaf?
    type == 'leaf'
end