Class: TingYun::Agent::TransactionMetrics
- Inherits:
-
Object
- Object
- TingYun::Agent::TransactionMetrics
- Defined in:
- lib/ting_yun/agent/transaction/transaction_metrics.rb
Constant Summary collapse
Instance Method Summary collapse
- #[](key) ⇒ Object
- #_record_metrics(names, value, aux, target, &blk) ⇒ Object
- #each_scoped ⇒ Object
- #each_unscoped ⇒ Object
- #has_key?(key) ⇒ Boolean
-
#initialize ⇒ TransactionMetrics
constructor
A new instance of TransactionMetrics.
- #record_scoped(names, value = nil, aux = nil, &blk) ⇒ Object
- #record_unscoped(names, value = nil, aux = nil, &blk) ⇒ Object
Constructor Details
#initialize ⇒ TransactionMetrics
Returns a new instance of TransactionMetrics.
10 11 12 13 |
# File 'lib/ting_yun/agent/transaction/transaction_metrics.rb', line 10 def initialize @unscoped = Hash.new(&DEFAULT_PROC) @scoped = Hash.new(&DEFAULT_PROC) end |
Instance Method Details
#[](key) ⇒ Object
27 28 29 |
# File 'lib/ting_yun/agent/transaction/transaction_metrics.rb', line 27 def [](key) @unscoped[key] end |
#_record_metrics(names, value, aux, target, &blk) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/ting_yun/agent/transaction/transaction_metrics.rb', line 39 def _record_metrics(names, value, aux, target, &blk) # This looks dumb, but we're avoiding an extra Array allocation. case names when Array names.each do |name| target[name].record(value, aux, &blk) end else target[names].record(value, aux, &blk) end end |
#each_scoped ⇒ Object
35 36 37 |
# File 'lib/ting_yun/agent/transaction/transaction_metrics.rb', line 35 def each_scoped @scoped.each { |name, stats| yield name, stats } end |
#each_unscoped ⇒ Object
31 32 33 |
# File 'lib/ting_yun/agent/transaction/transaction_metrics.rb', line 31 def each_unscoped @unscoped.each { |name, stats| yield name, stats } end |
#has_key?(key) ⇒ Boolean
23 24 25 |
# File 'lib/ting_yun/agent/transaction/transaction_metrics.rb', line 23 def has_key?(key) @unscoped.has_key?(key) end |
#record_scoped(names, value = nil, aux = nil, &blk) ⇒ Object
15 16 17 |
# File 'lib/ting_yun/agent/transaction/transaction_metrics.rb', line 15 def record_scoped(names, value=nil, aux=nil, &blk) _record_metrics(names, value, aux, @scoped, &blk) end |
#record_unscoped(names, value = nil, aux = nil, &blk) ⇒ Object
19 20 21 |
# File 'lib/ting_yun/agent/transaction/transaction_metrics.rb', line 19 def record_unscoped(names, value=nil, aux=nil, &blk) _record_metrics(names, value, aux, @unscoped, &blk) end |