Sử dụng MiniProfiler để theo dõi Profile của Rails App
Giới thiệu
MiniProfiler là một công cụ đơn giản để theo dõi thời gian server xử lý và render các thành phần html, query database (server side), thời gian trình duyệt load trang, xử lý DOM, hiển thị nội dung (client side). Rất hữu ích cho việc lập profile cho rails app, kiểm tra và cải thiện performance của app (có thể dùng cho các ứng dụng ruby và .NET , tham khảo tại đây)
Cài đặt:
Với rails app, đặt vào trong gemfile, sau đó chạy lệnh cài đặt bunlde
gem 'rack-mini-profiler'
Chú ý: Trong gem file, đặt dòng cài đặt rack-mini-profiler bên dưới dòng cài đặt pg
hoặc mysql
,
rack_mini_profiler
sẽ tự xác định và cài đặt phù hợp với kiểu database đang sử dụng ở Rails App. Nếu đặt
rack_mini_profiler
lên trên, MiniProfiler sẽ không theo dõi được các câu lệnh SQL.
Sử dụng rack-mini-profiler trong rails app
rack-mini-profiler có thể sử dụng được trên cả môi trường development và production. Để kích hoạt tính năng này trên production, chỉ việc chạy Rack::MiniProfiler.authorize_request đối với những request có quyền xem profile của app
# A hook in your ApplicationController def authorize if current_user.is_admin? Rack::MiniProfiler.authorize_request end end
Rack-mini-profiler hỗ trợ một số params sau
# pp=env : Hiển thị thông tin về môi trường đang chạy
# pp=skip : Bỏ qua MiniProfiler
# pp=no-backtrace : Không theo dõi các câu lệnh SQL (dùng pp=normal-backtrace để bật lại tính năng này)
# pp=full-backtrace : Theo dõi một cách chi tiết về các câu lệnh SQL được thực thi (sử dụng pp=normal-backtrace để trở về bình thường)
# pp=disable : vô hiệu hóa Miniprofiler
# pp=enable : bật lại MiniProfiler ( nếu trước đó đã vô hiệu hóa)
Database
Hiện tại rack-mini-profiler hỗ trợ các loại Database sau: Mysql2, Postgres, and Mongoid3
Tùy chỉnh cài đặt
Với rack-mini-profiler, có thể tùy chỉnh một số cài đặt sau
Hiển thị profile của trang ở bên góc phải (thay vì góc trái như mặc định)
Rack::MiniProfiler.config.position = 'right'
Để mặc định không hiển thị profile khi load trang ( Dùng phím tắt Alt + P để hiện bảng profile lên )
Rack::MiniProfiler.config.start_hidden = true
Không hiển thị những câu lệnh SQL có thời gian thực thi nhỏ hơn 5 mili giây
Rack::MiniProfiler.config.backtrace_threshold_ms = 5
Không theo dõi query đến database nữa
Rack::MiniProfiler.config.skip_schema_queries = true
Có thể xem thêm tại đây