Module: Profiler

Defined in:
lib/profiler.rb,
lib/profiler/engine.rb,
lib/profiler/railtie.rb,
lib/profiler/version.rb,
lib/profiler/mcp/server.rb,
lib/profiler/job_profiler.rb,
lib/profiler/configuration.rb,
lib/profiler/explain_runner.rb,
lib/profiler/mcp/file_cache.rb,
lib/profiler/models/profile.rb,
lib/profiler/models/sql_query.rb,
lib/profiler/mcp/body_formatter.rb,
lib/profiler/mcp/path_extractor.rb,
lib/profiler/storage/base_store.rb,
lib/profiler/storage/blob_store.rb,
lib/profiler/storage/file_store.rb,
lib/profiler/storage/redis_store.rb,
lib/profiler/mcp/tools/query_jobs.rb,
lib/profiler/storage/memory_store.rb,
lib/profiler/storage/sqlite_store.rb,
lib/profiler/models/timeline_event.rb,
lib/profiler/mcp/tools/explain_query.rb,
lib/profiler/collectors/job_collector.rb,
lib/profiler/collectors/log_collector.rb,
lib/profiler/mcp/tools/clear_profiles.rb,
lib/profiler/mcp/tools/query_profiles.rb,
lib/profiler/collectors/ajax_collector.rb,
lib/profiler/collectors/base_collector.rb,
lib/profiler/collectors/dump_collector.rb,
lib/profiler/collectors/http_collector.rb,
lib/profiler/collectors/i18n_collector.rb,
lib/profiler/collectors/view_collector.rb,
lib/profiler/mcp/resources/n1_patterns.rb,
lib/profiler/mcp/resources/recent_jobs.rb,
lib/profiler/mcp/tools/analyze_queries.rb,
lib/profiler/collectors/cache_collector.rb,
lib/profiler/mcp/resources/slow_queries.rb,
lib/profiler/mcp/tools/get_profile_ajax.rb,
lib/profiler/mcp/tools/get_profile_http.rb,
lib/profiler/middleware/cors_middleware.rb,
lib/profiler/collectors/routes_collector.rb,
lib/profiler/mcp/tools/get_profile_dumps.rb,
lib/profiler/middleware/toolbar_injector.rb,
lib/profiler/collectors/request_collector.rb,
lib/profiler/mcp/tools/get_profile_detail.rb,
app/controllers/profiler/assets_controller.rb,
lib/profiler/collectors/database_collector.rb,
lib/profiler/mcp/resources/recent_requests.rb,
lib/profiler/collectors/exception_collector.rb,
lib/profiler/middleware/profiler_middleware.rb,
app/controllers/profiler/api/ajax_controller.rb,
app/controllers/profiler/api/jobs_controller.rb,
app/controllers/profiler/profiles_controller.rb,
lib/profiler/collectors/flamegraph_collector.rb,
lib/profiler/collectors/performance_collector.rb,
app/controllers/profiler/api/explain_controller.rb,
app/controllers/profiler/api/toolbar_controller.rb,
app/controllers/profiler/application_controller.rb,
lib/profiler/instrumentation/sidekiq_middleware.rb,
app/controllers/profiler/api/profiles_controller.rb,
app/controllers/profiler/api/outbound_http_controller.rb,
lib/profiler/instrumentation/net_http_instrumentation.rb,
lib/profiler/instrumentation/active_job_instrumentation.rb

Defined Under Namespace

Modules: Api, Collectors, ExplainRunner, I18nLookupTracker, Instrumentation, MCP, Middleware, Models, Storage Classes: ApplicationController, AssetsController, Configuration, Engine, Error, JobProfiler, ProfilesController, Railtie

Constant Summary collapse

VERSION =
"0.7.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



12
13
14
# File 'lib/profiler.rb', line 12

def configuration
  @configuration ||= Configuration.new
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



16
17
18
# File 'lib/profiler.rb', line 16

def configure
  yield(configuration)
end

.dump(value, label = nil) ⇒ Object

Dump a variable to the profiler Usage: Profiler.dump(variable, “optional label”)



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/profiler.rb', line 30

def dump(value, label = nil)
  return unless enabled?

  # Get caller location
  caller_location = caller_locations(1, 1).first
  file = caller_location.path
  line = caller_location.lineno

  # Initialize dumps array if needed
  Thread.current[:profiler_dumps] ||= []

  # Store the dump
  Thread.current[:profiler_dumps] << {
    value: value,
    label: label,
    file: file,
    line: line,
    timestamp: Time.now
  }

  value
end

.enabled?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/profiler.rb', line 24

def enabled?
  configuration.enabled
end

.storageObject



20
21
22
# File 'lib/profiler.rb', line 20

def storage
  @storage ||= configuration.storage_backend
end