Sha256: eae803ee4d582381ad12e6b5a4d13f5e663f9836302d69645dc1aef69e2ef72a

Contents?: true

Size: 1.01 KB

Versions: 11

Compression:

Stored size: 1.01 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
# frozen_string_literal: true

module NewRelic::Agent
  NewRelic::Agent.logger.debug "Installing Infinite Tracer in Agent"
  
  Agent.class_eval do

    def new_infinite_tracer
      # We must start streaming in a thread or we block/deadlock the
      # entire start up process for the Agent.
      InfiniteTracing::Client.new.tap do |client| 
        @infinite_tracer_thread = InfiniteTracing::Worker.new(:infinite_tracer) do 
          NewRelic::Agent.logger.debug "Opening Infinite Tracer Stream with gRPC server"
          client.start_streaming
        end
      end
    end

    def close_infinite_tracer
      return unless @infinite_tracer_thread
      @infinite_tracer_thread.join
      @infinite_tracer_thread.stop
      @infinite_tracer_thread = nil
    end

    def infinite_tracer
      @infinite_tracer ||= new_infinite_tracer
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
newrelic-infinite_tracing-8.2.0 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-8.1.0 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-8.0.0 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-7.2.0 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-7.1.0 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-7.0.0 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-6.15.0 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-6.14.0 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-6.13.1 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-6.13.0 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-6.12.0.367 lib/infinite_tracing/agent_integrations/agent.rb