ruby-on-rails - 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?
感谢您的帮助,凯文
解决方案
推荐阅读
- python - 如何使用视频网址创建视频并将其添加到 youtube 播放列表?
- python - 为此任务编写自定义 AccumulatorParam 的正确方法是什么?
- tcl - 我不明白上层是如何工作的
- angular - 根据角度下拉选择设置输入值的值
- python - django - 不使用 using() 保存在其他数据库中
- c++ - 从其他类调用 C++ 函数的正确方法是什么?
- scala - 从选项内的对象中提取默认字段值
- arrays - 在python中创建一个动态数组而不事先知道它的大小
- python-3.x - 延迟评估/引用数据结构中的原子数据类型
- excel - 编辑 excel 查询以与 powerbi 查询配合使用