Project

simple_apm

0.03
No release in over 3 years
Low commit activity in last 3 years
xyy: Simple Apm View for rails using redis.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

SimpleApm (Rails Engine)

基于Redis的简单的Web请求性能监控/慢事务追踪工具

以天为维度记录:

  • 最慢的500个(默认500)请求
  • 记录每个action最慢的20次请求
  • 记录每个action的平均访问时间
  • 记录慢请求的详情和对应SQL详情(多余的会删掉)
  • 以10分钟为刻度记录平均/最慢访问时间、次数等性能指标,并生成图表
  • 记录请求中外部http访问时间

原理

围绕Rack记录请求级别的相关信息,使用redis作为数据存储/计算工具来记录慢事务

数据传递核心为:Active Support Instrumentation

处理Instrument方式为开启一个不影响主线程的常驻线程,循环计算处理数据

获取内存信息用到了gem: get_process_mem,经测试在linux系统耗时在1ms以下

功能截图

  • Dashboard Dashboard

  • 慢请求列表 Slow Requests

  • Action列表 Action List

  • 请求详情 Request Info

  • Action概况 Action Info

  • 数据管理 Data

Usage

# routes.rb
mount SimpleApm::Engine => "/apm"

# 或运行 
rails generate simple_apm:install 

Installation

Add this line to your application's Gemfile:

gem 'simple_apm'

And then execute:

$ bundle

Contributing

Contribution directions go here.

License

The gem is available as open source under the terms of the MIT License.