digraph AgentEnabled {
  node[color=green]
  "[agent_enabled]"
  "[monitor_mode]"
  "[slow_sql.explain_threshold]"
  "[slow_sql.stack_trace_threshold]"
  "[slow_sql.explain_enabled]"
  "[slow_sql.enabled]"
  "[slow_sql.record_sql]"
  "[transaction_tracer.limit_segments]"
  "[transaction_tracer.stack_trace_threshold]"
  "[transaction_tracer.explain_threshold]"
  "[transaction_tracer.explain_enabled]"
  "[transaction_tracer.transaction_threshold]"
  "[transaction_tracer.record_sql]"
  "[transaction_tracer.random_sample]"
  "[transaction_tracer.enabled]"
  "[error_collector.capture_source]"
  "[error_collector.enabled]"
  "[error_collector.ignore_errors]"
  "[error_collector.max_backtrace_frames]"
  "[browser_monitoring.auto_instrument]"
  "[license_key]"
  "[verify_certificate]"
  "[api_host]"
  "[api_port]"
  "[proxy_host]"
  "[proxy_port]"
  "[proxy_user]"
  "[proxy_pass]"
  "[host]"
  "[port]"
  "[timeout]"
  "[log_level]"
  "[apdex_t]"
  "[capture_params]"
  "[app_name]"
  "[multi_homed]"
  "[disable_samplers]"
  "[log_file_name]"
  "[log_file_path]"
  "[dispatcher]"
  "[force_send]"
  "[textmate]"
  "[max_payload_size_in_bytes]"
  "[sync_startup]"
  "[send_data_on_exit]"
  "[high_security]"
  "[validate_seed]"
  "[validate_token]"
  "[disable_backtrace_cleanup]"
  "[disable_activerecord_instrumentation]"
  "[disable_dj]"
  "[capture_memcache_keys]"
  "[disable_memcache_instrumentation]"
  "[disable_view_instrumentation]"
  "[disable_resque]"

  node[shape=box,color=orange]
  "Control#init_plugin"
  "Control#api_server"
  "Control#proxy_server"
  "Control#server_from_host"
  "Control#http_connection"
  "Control#set_log_level!"
  "Control#log_path"
  "Control#log_to_stdout?"
  "Control#convert_to_ip_address"
  "Control#server"
  "Control#setup_log"
  "Control#should_log?"
  "Control#log!"

  node[color=green]
  "Config#app_names"

  node[color=black]
  "Agent#initialize"
  "Agent#after_fork"
  "Agent#disabled?"
  "Agent#shutdown"
  "Agent#using_forking_dispatcher?"
  "Agent#has_license_key?"
  "Agent#correct_license_length"
  "Agent#apdex_f"
  "Agent#check_config_and_start_agent"
  "Agent#install_exit_handler"
  "Agent#log_app_names"
  "Agent#connect_settings"
  "Agent#log_seed_token"
  "Agent#log_error"
  "Agent#monitoring?"
  "Agent#check_trasaction_sampler_status"
  "Agent#check_sql_sampler_status"
  "Agent#config_transaction_tracer"
  "Agent#set_sql_recording!"
  "Agent#already_started?"
  "Agent#log_connection"
  "Agent#manual_start"

  "MethodTracer#remove_method_tracer"

  "ErrorCollector#initialize"
  "ErrorCollector#request_params_from_opts"

  "ControllerInstrumentation#perform_action_with_newrelic_trace"

  "NewRelicService#initialize"
  "NewRelicService#check_post_size"
  "NewRelicService#connect"
  "NewRelicService#send_request"

  "SqlSampler#configure!"

  "TransactionSampler#configure!"
  "TransactionSampler#notice_push_scope"
  "TransactionSampler#capture_segment_trace"
  "TransactionSampler#store_segment_for_developer_mode"

  "NoticedError#initialize"

  "BeaconConfiguration#license_bytes"

  "ActiveRecord#depends_on"
  "DelayedJobInstrumentation#depends_on"
  "Memcache#memcache_key_snippet"
  "Memcache#depends_on"
  "Rails::ActionController#depends_on"
  "Rails3::ActionController#depends_on"
  "Resque#depends_on"

  "DelayedJobSampler#initialize"
  "DelayedJobInjection#depends_on"

  "MetricFrame.update_apdex"

  "TranactionInfo#force_persist_sample?"
  "TranactionInfo#include_guid?"

  "TransactionSampleBuilder#initialize"
  "TransactionSampleBuilder#set_transaction_info"

  "Rails#install_browser_monitoring"
  "Rails#log!"
  "Rails3#log!"

  "CollectionHelper#strip_nr_from_backtrace"

  "Deployments#initialize"

#######

  "Control#init_plugin" -> "[agent_enabled]"
  "Control#init_plugin" -> "Control#setup_log"
  "Control#init_plugin" -> "[disable_samplers]"
  "Control#should_log?" -> "[agent_enabled]"
  "Control#api_server" -> "[api_host]"
  "Control#api_server" -> "[api_port]"
  "Control#proxy_server" -> "[proxy_host]"
  "Control#proxy_server" -> "[proxy_port]"
  "Control#proxy_server" -> "[proxy_user]"
  "Control#proxy_server" -> "[proxy_pass]"
  "Control#server_from_host" -> "[host]"
  "Control#server_from_host" -> "[port]"
  "Control#server_from_host" -> "Control#convert_to_ip_address"
  "Control#http_connection" -> "[verify_certificate]"
  "Control#http_connection" -> "Control#proxy_server"
  "Control#set_log_level!" -> "[log_level]"
  "Control#log_path" -> "[log_file_path]"
  "Control#log_path" -> "Control#log_to_stdout?"
  "Control#log_to_stdout?" -> "[log_file_path]"
  "Control#convert_to_ip_address" -> "[verify_certificate]"
  "Control#server" -> "Control#server_from_host"
  "Control#setup_log" -> "Control#set_log_level!"
  "Control#setup_log" -> "Control#log_path"
  "Control#setup_log" -> "Control#log_to_stdout?"
  "Control#setup_log" -> "[log_file_name]"
  "Control#log!" -> "Control#should_log?"
  "Control#log!" -> "Control#log_path"

  "Agent#initialize" -> "[monitor_mode]"
  "Agent#after_fork" -> "[agent_enabled]"
  "Agent#after_fork" -> "[monitor_mode]"
  "Agent#disabled?" -> "[agent_enabled]"
  "Agent#shutdown" -> "[force_send]"
  "Agent#shutdown" -> "[dispatcher]"
  "Agent#using_forking_dispatcher?" -> "[dispatcher]"
  "Agent#has_license_key?" -> "[license_key]"
  "Agent#correct_license_length" -> "[license_key]"
  "Agent#apdex_f" -> "[apdex_t]"
  "Agent#check_config_and_start_agent" -> "[sync_startup]"
  "Agent#install_exit_handler" -> "[send_data_on_exit]"
  "Agent#log_app_names" -> "Config#app_names"
  "Agent#connect_settings" -> "Config#app_names"
  "Agent#log_seed_token" -> "[validate_seed]"
  "Agent#log_seed_token" -> "[validate_token]"
  "Agent#validate_settings" -> "[validate_seed]"
  "Agent#validate_settings" -> "[validate_token]"
  "Agent#log_error" -> "Control#server"
  "Agent#monitoring?" -> "[monitor_mode]"
  "Agent#check_sql_sampler_status" -> "[slow_sql.enabled]"
  "Agent#check_sql_sampler_status" -> "[slow_sql.record_sql]"
  "Agent#check_sql_sampler_status" -> "[transaction_tracer.enabled]"
  "Agent#config_transaction_tracer" -> "[transaction_tracer.enabled]"
  "Agent#config_transaction_tracer" -> "[transaction_tracer.random_sample]"
  "Agent#config_transaction_tracer" -> "[transaction_tracer.transaction_threshold]"
  "Agent#set_sql_recording!" -> "[transaction_tracer.record_sql]"
  "Agent#already_started?" -> "Control#log!"
  "Agent#log_connection" -> "Control#log!"
  "Agent#manual_start" -> "Control#init_plugin"

  "MethodTracer#remove_method_tracer" -> "[agent_enabled]"

  "Rails#init_config" -> "[agent_enabled]"

  "ErrorCollector#initialize" -> "[error_collector.enabled]"
  "ErrorCollector#initialize" -> "[error_collector.capture_source]"
  "ErrorCollector#initialize" -> "[error_collector.ignore_errors]"
  "ErrorCollector#request_params_from_opts" -> "[capture_params]"

  "NewRelicService#initialize" -> "[timeout]"
  "NewRelicService#initialize" -> "[license_key]"
  "NewRelicService#initialize" -> "Control#server"
  "NewRelicService#check_post_size" -> "[max_payload_size_in_bytes]"
  "NewRelicService#connect" -> "Control#server_from_host"
  "NewRelicService#send_request" -> "Control#http_connection"

  "SqlSampler#configure!" -> "[slow_sql.explain_threshold]"
  "SqlSampler#configure!" -> "[slow_sql.explain_enabled]"
  "SqlSampler#configure!" -> "[slow_sql.stack_trace_threshold]"
  "SqlSampler#configure!" -> "[slow_sql.enabled]"

  "TransactionSampler#configure!" -> "[transaction_tracer.limit_segments]"
  "TransactionSampler#configure!" -> "[transaction_tracer.stack_trace_threshold]"
  "TransactionSampler#configure!" -> "[transaction_tracer.explain_threshold]"
  "TransactionSampler#configure!" -> "[transaction_tracer.explain_enabled]"
  "TransactionSampler#configure!" -> "[transaction_tracer.transaction_threshold]"

  "NoticedError#initialize" -> "[high_security]"

  "BeaconConfiguration#license_bytes" -> "[license_key]"

  "ActiveRecord#depends_on" -> "[disable_activerecord_instrumentation]"

  "DelayedJobInstrumentation#depends_on" -> "[disable_dj]"

  "Memcache#memcache_key_snippet" -> "[capture_memcache_keys]"
  "Memcache#depends_on" -> "[disable_memcache_instrumentation]"

  "Rails::ActionController#depends_on" -> "[disable_view_instrumentation]"
  "Rails3::ActionController#depends_on" -> "[disable_view_instrumentation]"
  "Resque#depends_on" -> "[disable_resque]"

  "DelayedJobSampler#initialize" -> "[disable_dj]"
  "DelayedJobInjection#depends_on" -> "[disable_dj]"
  "DelayedJobInjection#executes" -> "Control#init_plugin"

  "MetricFrame.update_apdex" -> "[apdex_t]"

  "TranactionInfo#force_persist_sample?" -> "[apdex_t]"
  "TranactionInfo#include_guid?" -> "[apdex_t]"

  "TransactionSampleBuilder#initialize" -> "[transaction_tracer.limit_segments]"
  "TransactionSampleBuilder#set_transaction_info" -> "[capture_params]"

  "Rails#install_browser_monitoring" -> "[browser_monitoring.auto_instrument]"
  "Rails#log!" -> "Control#should_log?"
  "Rails3#log!" -> "Control#should_log?"

  "CollectionHelper#strip_nr_from_backtrace" -> "[disable_backtrace_cleanup]"

  "Deployments#initialize" -> "Config#app_names"
  "Deployments#run" -> "Control#http_connection"
  "Deployments#run" -> "[license_key]"
  "Deployments#run" -> "Control#api_server"

  "Config#app_names" -> "[app_name]"
}