Sha256: 5a6d904cf6697463a8316b42727bc46bca535f45f45003d2d6eb1f5434edb5ba
Contents?: true
Size: 1.7 KB
Versions: 3
Compression:
Stored size: 1.7 KB
Contents
# encoding: utf-8 # This file is distributed under New Relic's license terms. # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details. require 'new_relic/agent/transaction/abstract_segment' module NewRelic module Agent class Transaction class Segment < AbstractSegment # unscoped_metrics can be nil, a string, or array. we do this to save # object allocations. if allocations weren't important then we would # initialize it as an array that would be empty, have one item, or many items. attr_reader :unscoped_metrics def initialize name=nil, unscoped_metrics=nil, start_time=nil @unscoped_metrics = unscoped_metrics super name, start_time end def record_metrics if record_scoped_metric? metric_cache.record_scoped_and_unscoped name, duration, exclusive_duration else append_unscoped_metric name end if unscoped_metrics metric_cache.record_unscoped unscoped_metrics, duration, exclusive_duration end end private def append_unscoped_metric metric if @unscoped_metrics if Array === @unscoped_metrics if unscoped_metrics.frozen? @unscoped_metrics += [name] else @unscoped_metrics << name end else @unscoped_metrics = [@unscoped_metrics, metric] end else @unscoped_metrics = metric end end def segment_complete Agent.instance.transaction_sampler.add_node_parameters params if params? end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems