class HeimdallApm::Visitors::RequestMetricsVisitor

Extract metrics for a given transaction

Attributes

metrics[R]

Public Class Methods

new(vault, transaction) click to toggle source
# File lib/heimdall_apm/visitors/request_metrics_visitor.rb, line 11
def initialize(vault, transaction)
  @transaction = transaction
  @vault   = vault
  @metrics = {}
end

Public Instance Methods

store_in_vault() click to toggle source
# File lib/heimdall_apm/visitors/request_metrics_visitor.rb, line 25
def store_in_vault
  timestamp = @transaction.root_segment.stop_time
  @vault.store_transaction_metrics(@transaction, metrics)
end
visit(segment) click to toggle source
# File lib/heimdall_apm/visitors/request_metrics_visitor.rb, line 17
def visit(segment)
  name = ::HeimdallApm::MetricName.new(segment.type, segment.name)
  @metrics[name] ||= ::HeimdallApm::MetricStats.new

  stat = @metrics[name]
  stat.update(segment.total_call_time, segment.total_exclusive_time)
end