Class: NewRelic::Agent::Instrumentation::Event

Inherits:
Object
  • Object
show all
Defined in:
lib/new_relic/agent/instrumentation/evented_subscriber.rb

Overview

Taken from ActiveSupport::Notifications::Event, pasted here with a couple minor additions so we don’t have a hard dependency on ActiveSupport::Notifications.

Represents an intrumentation event, provides timing and metric name information useful when recording metrics.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, start, ending, transaction_id, payload) ⇒ Event

Returns a new instance of Event.



73
74
75
76
77
78
79
80
# File 'lib/new_relic/agent/instrumentation/evented_subscriber.rb', line 73

def initialize(name, start, ending, transaction_id, payload)
  @name           = name
  @payload        = payload.dup
  @time           = start
  @transaction_id = transaction_id
  @end            = ending
  @children       = []
end

Instance Attribute Details

#childrenObject (readonly)

Returns the value of attribute children.



70
71
72
# File 'lib/new_relic/agent/instrumentation/evented_subscriber.rb', line 70

def children
  @children
end

#endObject

Returns the value of attribute end.



71
72
73
# File 'lib/new_relic/agent/instrumentation/evented_subscriber.rb', line 71

def end
  @end
end

#nameObject (readonly)

Returns the value of attribute name.



70
71
72
# File 'lib/new_relic/agent/instrumentation/evented_subscriber.rb', line 70

def name
  @name
end

#parentObject

Returns the value of attribute parent.



71
72
73
# File 'lib/new_relic/agent/instrumentation/evented_subscriber.rb', line 71

def parent
  @parent
end

#payloadObject (readonly)

Returns the value of attribute payload.



70
71
72
# File 'lib/new_relic/agent/instrumentation/evented_subscriber.rb', line 70

def payload
  @payload
end

#scopeObject

Returns the value of attribute scope.



71
72
73
# File 'lib/new_relic/agent/instrumentation/evented_subscriber.rb', line 71

def scope
  @scope
end

#timeObject (readonly)

Returns the value of attribute time.



70
71
72
# File 'lib/new_relic/agent/instrumentation/evented_subscriber.rb', line 70

def time
  @time
end

#transaction_idObject (readonly)

Returns the value of attribute transaction_id.



70
71
72
# File 'lib/new_relic/agent/instrumentation/evented_subscriber.rb', line 70

def transaction_id
  @transaction_id
end

Instance Method Details

#<<(event) ⇒ Object



90
91
92
# File 'lib/new_relic/agent/instrumentation/evented_subscriber.rb', line 90

def <<(event)
  @children << event
end

#durationObject



86
87
88
# File 'lib/new_relic/agent/instrumentation/evented_subscriber.rb', line 86

def duration
  self.end - time
end

#metric_nameObject

Raises:

  • (NotImplementedError)


82
83
84
# File 'lib/new_relic/agent/instrumentation/evented_subscriber.rb', line 82

def metric_name
  raise NotImplementedError
end

#parent_of?(event) ⇒ Boolean

Returns:

  • (Boolean)


94
95
96
# File 'lib/new_relic/agent/instrumentation/evented_subscriber.rb', line 94

def parent_of?(event)
  @children.include? event
end