首页 > 解决方案 > Mongoid / Rails 每个请求的查询计数

问题描述

我们有一个生产应用程序,我们发现我们最大的瓶颈是数据库查询。很难准确地追踪用户正在做什么来弄清楚现实世界的请求是什么。我们正在考虑构建每个请求的跟踪器。Mongoid 或 Rails 是否支持每个请求数量的查询跟踪器?我们想要类似开发中的东西,您可以看到所有查询飞过,但每个请求。我们实现这个是这样的:

应用程序控制器:

before_action :log_request_start
after_action :log_request_end

def log_request_start
    request_log = RequestLog.new  # make a new model to 
    request_log.id = Thread.id # use thread?
    request_log.params = request.whatever # harvest some params from the Rails request


def log_request_end
    request_log = Request.find_by(thread_id: Thread.id) #  look it up
    request.total_queries = # can we get the number of mongo queries that fired in this request?

感谢您的帮助,凯文

标签: ruby-on-railsmongodbmongoid

解决方案


推荐阅读