Module: ScoutApm

Defined in:
lib/scout_apm/error.rb,
lib/scout_apm.rb,
lib/scout_apm.rb,
lib/scout_apm/rack.rb,
lib/scout_apm/agent.rb,
lib/scout_apm/debug.rb,
lib/scout_apm/layer.rb,
lib/scout_apm/store.rb,
lib/scout_apm/config.rb,
lib/scout_apm/logger.rb,
lib/scout_apm/tracer.rb,
lib/scout_apm/context.rb,
lib/scout_apm/layaway.rb,
lib/scout_apm/version.rb,
lib/scout_apm/call_set.rb,
lib/scout_apm/reporter.rb,
lib/scout_apm/histogram.rb,
lib/scout_apm/reporting.rb,
lib/scout_apm/utils/scm.rb,
lib/scout_apm/exceptions.rb,
lib/scout_apm/fake_store.rb,
lib/scout_apm/job_record.rb,
lib/scout_apm/metric_set.rb,
lib/scout_apm/middleware.rb,
lib/scout_apm/stack_item.rb,
lib/scout_apm/utils/time.rb,
lib/scout_apm/environment.rb,
lib/scout_apm/metric_meta.rb,
lib/scout_apm/transaction.rb,
lib/scout_apm/git_revision.rb,
lib/scout_apm/ignored_uris.rb,
lib/scout_apm/layaway_file.rb,
lib/scout_apm/metric_stats.rb,
lib/scout_apm/tasks/doctor.rb,
lib/scout_apm/agent_context.rb,
lib/scout_apm/error_service.rb,
lib/scout_apm/limited_layer.rb,
lib/scout_apm/periodic_work.rb,
lib/scout_apm/remote/router.rb,
lib/scout_apm/remote/server.rb,
lib/scout_apm/tasks/support.rb,
lib/scout_apm/utils/numbers.rb,
lib/scout_apm/remote/message.rb,
lib/scout_apm/app_server_load.rb,
lib/scout_apm/remote/recorder.rb,
lib/scout_apm/request_manager.rb,
lib/scout_apm/scored_item_set.rb,
lib/scout_apm/slow_job_record.rb,
lib/scout_apm/tracked_request.rb,
lib/scout_apm/utils/unique_id.rb,
lib/scout_apm/instruments/http.rb,
lib/scout_apm/slow_transaction.rb,
lib/scout_apm/background_worker.rb,
lib/scout_apm/extensions/config.rb,
lib/scout_apm/instant_reporting.rb,
lib/scout_apm/instruments/grape.rb,
lib/scout_apm/instruments/moped.rb,
lib/scout_apm/instruments/redis.rb,
lib/scout_apm/utils/gzip_helper.rb,
lib/scout_apm/agent/exit_handler.rb,
lib/scout_apm/attribute_arranger.rb,
lib/scout_apm/instant/middleware.rb,
lib/scout_apm/instrument_manager.rb,
lib/scout_apm/instruments/resque.rb,
lib/scout_apm/layer_children_set.rb,
lib/scout_apm/request_histograms.rb,
lib/scout_apm/utils/klass_helper.rb,
lib/scout_apm/agent/preconditions.rb,
lib/scout_apm/background_recorder.rb,
lib/scout_apm/db_query_metric_set.rb,
lib/scout_apm/instruments/mongoid.rb,
lib/scout_apm/instruments/sinatra.rb,
lib/scout_apm/slow_request_policy.rb,
lib/scout_apm/utils/sql_sanitizer.rb,
lib/scout_apm/bucket_name_splitter.rb,
lib/scout_apm/instruments/influxdb.rb,
lib/scout_apm/instruments/net_http.rb,
lib/scout_apm/instruments/samplers.rb,
lib/scout_apm/instruments/typhoeus.rb,
lib/scout_apm/synchronous_recorder.rb,
lib/scout_apm/utils/installed_gems.rb,
lib/scout_apm/auto_instrument/layer.rb,
lib/scout_apm/auto_instrument/rails.rb,
lib/scout_apm/db_query_metric_stats.rb,
lib/scout_apm/error_service/payload.rb,
lib/scout_apm/error_service/railtie.rb,
lib/scout_apm/error_service/sidekiq.rb,
lib/scout_apm/instruments/memcached.rb,
lib/scout_apm/utils/marshal_logging.rb,
lib/scout_apm/auto_instrument/parser.rb,
lib/scout_apm/error_service/notifier.rb,
lib/scout_apm/utils/backtrace_parser.rb,
lib/scout_apm/instruments/action_view.rb,
lib/scout_apm/instruments/http_client.rb,
lib/scout_apm/error_service/middleware.rb,
lib/scout_apm/instruments/rails_router.rb,
lib/scout_apm/server_integrations/null.rb,
lib/scout_apm/server_integrations/puma.rb,
lib/scout_apm/server_integrations/thin.rb,
lib/scout_apm/instruments/active_record.rb,
lib/scout_apm/instruments/elasticsearch.rb,
lib/scout_apm/transaction_time_consumed.rb,
lib/scout_apm/error_service/error_buffer.rb,
lib/scout_apm/error_service/error_record.rb,
lib/scout_apm/error_service/periodic_work.rb,
lib/scout_apm/external_service_metric_set.rb,
lib/scout_apm/framework_integrations/ruby.rb,
lib/scout_apm/layer_converters/histograms.rb,
lib/scout_apm/server_integrations/unicorn.rb,
lib/scout_apm/server_integrations/webrick.rb,
lib/scout_apm/platform_integrations/heroku.rb,
lib/scout_apm/platform_integrations/server.rb,
lib/scout_apm/server_integrations/rainbows.rb,
lib/scout_apm/external_service_metric_stats.rb,
lib/scout_apm/server_integrations/passenger.rb,
lib/scout_apm/framework_integrations/rails_2.rb,
lib/scout_apm/framework_integrations/sinatra.rb,
lib/scout_apm/instruments/middleware_summary.rb,
lib/scout_apm/instruments/percentile_sampler.rb,
lib/scout_apm/layer_converters/job_converter.rb,
lib/scout_apm/serializers/payload_serializer.rb,
lib/scout_apm/background_job_integrations/que.rb,
lib/scout_apm/instruments/middleware_detailed.rb,
lib/scout_apm/instruments/process/process_cpu.rb,
lib/scout_apm/layer_converters/converter_base.rb,
lib/scout_apm/utils/active_record_metric_name.rb,
lib/scout_apm/error_service/ignored_exceptions.rb,
lib/scout_apm/layer_converters/error_converter.rb,
lib/scout_apm/layer_converters/trace_converter.rb,
lib/scout_apm/serializers/directive_serializer.rb,
lib/scout_apm/layer_converters/metric_converter.rb,
lib/scout_apm/background_job_integrations/resque.rb,
lib/scout_apm/instruments/process/process_memory.rb,
lib/scout_apm/background_job_integrations/faktory.rb,
lib/scout_apm/background_job_integrations/sidekiq.rb,
lib/scout_apm/framework_integrations/rails_3_or_4.rb,
lib/scout_apm/layer_converters/database_converter.rb,
lib/scout_apm/layer_converters/depth_first_walker.rb,
lib/scout_apm/layer_converters/find_layer_by_type.rb,
lib/scout_apm/layer_converters/slow_job_converter.rb,
lib/scout_apm/platform_integrations/cloud_foundry.rb,
lib/scout_apm/serializers/jobs_serializer_to_json.rb,
lib/scout_apm/auto_instrument/instruction_sequence.rb,
lib/scout_apm/background_job_integrations/sneakers.rb,
lib/scout_apm/background_job_integrations/shoryuken.rb,
lib/scout_apm/instruments/action_controller_rails_2.rb,
lib/scout_apm/serializers/app_server_load_serializer.rb,
lib/scout_apm/serializers/metrics_to_json_serializer.rb,
lib/scout_apm/serializers/payload_serializer_to_json.rb,
lib/scout_apm/background_job_integrations/delayed_job.rb,
lib/scout_apm/extensions/transaction_callback_payload.rb,
lib/scout_apm/layer_converters/slow_request_converter.rb,
lib/scout_apm/serializers/db_query_serializer_to_json.rb,
lib/scout_apm/serializers/slow_jobs_serializer_to_json.rb,
lib/scout_apm/serializers/histograms_serializer_to_json.rb,
lib/scout_apm/background_job_integrations/legacy_sneakers.rb,
lib/scout_apm/layer_converters/external_service_converter.rb,
lib/scout_apm/instruments/action_controller_rails_3_rails4.rb,
lib/scout_apm/layer_converters/allocation_metric_converter.rb,
lib/scout_apm/layer_converters/request_queue_time_converter.rb,
lib/scout_apm/serializers/external_service_serializer_to_json.rb,
ext/allocations/allocations.c,
ext/allocations/allocations.c

Overview

This is different than other BackgroundJobIntegrations and must be prepended manually in each job.

class MyWorker

prepend ScoutApm::BackgroundJobIntegrations::LegacySneakers

def work(msg)
  ...
end

end

Defined Under Namespace

Modules: AllExceptionsExceptOnesWeMustNotRescue, AttributeArranger, AutoInstrument, BackgroundJobIntegrations, BucketNameSplitter, Error, ErrorService, Extensions, FrameworkIntegrations, Instant, Instruments, LayerConverters, PlatformIntegrations, Rack, Remote, Serializers, ServerIntegrations, SlowPolicy, Tasks, Tracer, Transaction, Utils Classes: Agent, AgentContext, AppServerLoad, BackgroundRecorder, BackgroundWorker, CallSet, Config, Context, DbQueryMetricSet, DbQueryMetricStats, Debug, Environment, ExternalServiceMetricSet, ExternalServiceMetricStats, FakeStore, GitRevision, HistogramBin, IgnoredUris, InstantReporting, InstrumentManager, JobRecord, Layaway, LayawayFile, Layer, LayerChildrenSet, LimitedLayer, Logger, LoggerFactory, MetricMeta, MetricSet, MetricStats, Middleware, NumericHistogram, PeriodicWork, Railtie, RecorderFactory, Reporter, Reporting, RequestHistograms, RequestManager, ScoredItemSet, SlowJobRecord, SlowRequestPolicy, SlowTransaction, SqlList, StackItem, Store, StoreReportingPeriod, StoreReportingPeriodTimestamp, SynchronousRecorder, TrackedRequest, TransactionTimeConsumed

Constant Summary collapse

VERSION =
"5.1.0"

Class Method Summary collapse

Class Method Details

.AutoInstrument(name, backtrace) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/scout_apm/auto_instrument/layer.rb', line 3

def self.AutoInstrument(name, backtrace)
  request = ScoutApm::RequestManager.lookup

  file_name, _ = backtrace.first.split(":", 2)

  begin
    layer = ScoutApm::Layer.new('AutoInstrument', name)
    layer.backtrace = backtrace
    layer.file_name = file_name

    request.start_layer(layer)
    started_layer = true

    result = yield
  ensure
    request.stop_layer if started_layer
  end

  return result
end