1. OneAPM是什么?

网站开发完了,也上线了,业务也做起来了,访问网站的人也越来越多。这个时候你就需要维护这个网站了。不仅仅是业务上的维护,还包括运维,监控等 。你可能会监控每天的访问量有多少,增长了没,这个时候可以用google analyse,百度统计,站长工具等来完成。这些工具主要是统计了浏览量,来源分析等,来帮助公司运营人员的决策,营销推广等 。访问量上来了,网站可能也会遇到性能瓶颈。这个时候你可以要找出哪些低性能的功能或页面。那就得监控这些页面。通过观察每个页面的访问时间来查看哪些是有影响的。OneAPM是解决这个事情的。它能帮助网站进行网站性能监控,包括页面的性能,数据库的性能,缓存的性能等。

2. 为什么选择OneAPM?

业界比较有名的监控系统是newrelic,不过这东西在国外,在国内访问它的主页都很慢,而且国外好的东西动不动就被那个(你懂的),所以一直在等待中国也有类似的产品出来。在国内的话,访问快,只要这个产品稳定,口碑好,不出问题,就是很不错的选择之一。另外。OneAPM使用起来很简单,它官网有一些教程,按照那教程,只需几分钟,几个步骤,装一个gem就能搞定。

3. 使用OneAPM监控Ruby应用性能

登录OneAPM官网,注册账号,进入主页面,选择"应用监控",添加一个应用,选择"ruby"那个tab,里面列出了5个步骤。

按照这5个步骤就可以设置成功的。

第一步是把授权编号复制,这个是要用到的。

第二步是复制oneapm.yml文件存放到config目录下。这个是主要的配置文件。刚才复制的授权编号也是要放到这个文件中的。

第三步是把那个gem添加到Gemfile文件,并进行bundle install就好了。

现在主要的问题是第二步,那个配置文件里面的项目名和你建立的应用的项目名的对应。我先贴我本站的oneapm.yml文件的内容。

#
# OneApm Ruby探针配置
#

common: &default_settings

  license_key: "<%= ENV['oneapm_license_key'] %>"

  # 您在这里填写的app_name会显示在OneAPM的管理后台界面中。
  #
  # 如果您修改了此处的app_name,一个新的应用会出现在后台,
  # 数据会上传到这个新应用,并停止向旧的应用上传数据。
  #
  app_name: rails365

#
# 环境相关配置
#

production:
  <<: *default_settings
  monitor_mode: true

development:
  <<: *default_settings
  # development模式下,探针开启并上传性能数据
  monitor_mode: true
  app_name: rails365 (Development)

test:
  <<: *default_settings
  monitor_mode: false

staging:
  <<: *default_settings
  monitor_mode: true
  app_name: rails365 (Staging)

license_key就是授权编号,一段字符串,为了保密,我是存到配置文件中的。

其他的内容都基本没改,唯一有改的地方就是app_name,这个名字就是要跟你建立的oneapm应用的名字一致才行。

我线上就有一个oenapm应用就叫rails365,把里面的app_name替换成rails365就好了。

按照官方教程说的,重新启动并部署你的项目,试着访问几个页面,稍等片刻,或许就能很快在oneapm的监控页面上看到数据了。

4. 总结

或许用rails的Notifications结合hightcharts图表显示也能实现类似OneAPM的效果,至少能得到每个页面的访问时间,数据库语句的执行时间,但是现在有更方便的OneAPM,我们就可以尝试去用它。如果要进一步,还可以去研究那个gem的源码,知道它是如何实现的。


回复数量: 0
暂无评论~~