默认情况,Newrelic 的 Transactions response time overview 页面是没有统计 GC 信息的。如果想要开启只需要在config/initializers/new_relic_unicorn.rb
添加如下代码 (如果不是 unicorn 只需要最后一句):
# -*- encoding : utf-8 -*-
# Ensure the agent is started using Unicorn.
# This is needed when using Unicorn and preload_app is not set to true.
# See https://docs.newrelic.com/docs/ruby/no-data-with-unicorn
if defined? Unicorn
::NewRelic::Agent.manual_start()
::NewRelic::Agent.after_fork(:force_reconnect => true)
end
GC::Profiler.enable
New Relic 支持自定义 Event,结合 Capistrano 可以把每次发布的时间点划到图表上,题图上到三条粉丝细线就是 deployment 时刻。 同时,还可以把 changelog 信息一并记录下来,便于追踪各个版本差异产生的原因,如下图:
实现这样酷的功能只需要两行代码,在deploy.rb
里:
require 'new_relic/recipes'
after "deploy:updated", "newrelic:notice_deployment"`
你不需要发布就可以测试这个功能是否设置正确:
cap newrelic:notice_deployment -Snewrelic_desc="Deploying beta Krakatau release"
默认情况下,Newrelic 会在网站响应速度低到一定阀值邮件通知,也可以手动设置 Availability monitoring
,
需要提供某个页面到 URL,如果这个 URL 一分钟内 ping 不通就会收到网站 downtime 邮件。
只需 Gemfile 里添加 newrelic-redis
这个 gem,前提是你用了 redis-rb
。
一定有同学会问,Redis 都那么快了还需要监控?
原因很简单:
默认情况下 Newrelic 会把请求时间算在 Ruby/View 里,这样你发现一个很慢的页面渲染,你无法定位到具体是什么东西那么慢。
加上 newrelic-redis
之后这部分时间被清晰到记录在 Database catalog,并且可以和 view 其他部分区分开,细致到每个 redis 指令执行到时间:
只需要升级 newrelic_rpm
到 3.9.0 或以上。
就是 ExceptionNotify 的 JS 云端版本。当然,这个功能已经有很多人在做了,并不是 newrelic 首创。但集成到 newrelic 里却是非常自然,监控异常的同时还可以监控 JS 错误,何乐而不为呢..
这是一个 beta 项目,NewRelic 把自己收集的数据再开放给你。通过自定义的 NRQL,让你可以按照自己关心的方式自定义 Dashboard。有了 API,你可以再把这些数据倒回自己倒应用,和自己已有的数据做进一步分析。
Google Analytics 很早就有了,有了这个东西可玩性就提高了一个层次。能做什么就由开发者自己来想像了。
相关文档