Method: NewRelic::Agent#after_fork

Defined in:
lib/new_relic/agent.rb

#after_fork(options = {}) ⇒ Object

Register this method as a callback for processes that fork jobs.

If the master/parent connects to the agent prior to forking the agent in the forked process will use that agent_run. Otherwise the forked process will establish a new connection with the server.

Use this especially when you fork the process to run background jobs or other work. If you are doing this with a web dispatcher that forks worker processes then you will need to force the agent to reconnect, which it won’t do by default. Passenger and Unicorn are already handled, nothing special needed for them.

Options:

  • :force_reconnect => true to force the spawned process to establish a new connection, such as when forking a long running process. The default is false–it will only connect to the server if the parent had not connected.

  • :keep_retrying => false if we try to initiate a new connection, this tells me to only try it once so this method returns quickly if there is some kind of latency with the server.



443
444
445
446
447
# File 'lib/new_relic/agent.rb', line 443

def after_fork(options = {})
  record_api_supportability_metric(:after_fork)
  # the following line needs else branch coverage
  agent.after_fork(options) if agent # rubocop:disable Style/SafeNavigation
end