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