Sha256: c1ef1d620b2f395c7bc40cdf6e612551c8db60526c565ad057d65453c9270b86

Contents?: true

Size: 1 KB

Versions: 6

Compression:

Stored size: 1 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

6 entries across 6 versions & 1 rubygems

Version Path
newrelic-infinite_tracing-8.8.0 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-8.7.0 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-8.6.0 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-8.5.0 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-8.4.0 lib/infinite_tracing/agent_integrations/agent.rb
newrelic-infinite_tracing-8.3.0 lib/infinite_tracing/agent_integrations/agent.rb