运维 你不知道的 New Relic

hooopo for Shopper+ · 2014年06月29日 · 最后由 hooopo 回复于 2014年07月03日 · 8996 次阅读

Enabling garbage collection instrumentation

默认情况,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

Recording deployments

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"

Availability monitoring

默认情况下,Newrelic 会在网站响应速度低到一定阀值邮件通知,也可以手动设置 Availability monitoring, 需要提供某个页面到 URL,如果这个 URL 一分钟内 ping 不通就会收到网站 downtime 邮件。

Instrumentation Redis

只需 Gemfile 里添加 newrelic-redis 这个 gem,前提是你用了 redis-rb

一定有同学会问,Redis 都那么快了还需要监控?

原因很简单:

默认情况下 Newrelic 会把请求时间算在 Ruby/View 里,这样你发现一个很慢的页面渲染,你无法定位到具体是什么东西那么慢。 加上 newrelic-redis之后这部分时间被清晰到记录在 Database catalog,并且可以和 view 其他部分区分开, 细致到每个 redis 指令执行到时间:

Instrumentation Rack Middleware

只需要升级 newrelic_rpm 到 3.9.0 或以上。

JS Error Notification

就是 ExceptionNotify 的 JS 云端版本。当然,这个功能已经有很多人在做了,并不是 newrelic 首创。但集成到 newrelic 里却是非常自然,监控异常的同时还可以监控 JS 错误,何乐而不为呢..

NewRelic Insights

这是一个 beta 项目,NewRelic 把自己收集的数据再开放给你。通过自定义的 NRQL,让你可以按照自己关心的方式自定义 Dashboard。有了 API,你可以再把这些数据倒回自己倒应用,和自己已有的数据做进一步分析。

Custom Variable

Google Analytics 很早就有了,有了这个东西可玩性就提高了一个层次。能做什么就由开发者自己来想像了。

NewRelic 和 Twitter 的吞吐量相当,数据库使用的是 MySQL(Percona)

Renferer: http://www.slideshare.net/newrelic/how-to-build-a-saas-app-with-twitterlike-throughput-on-just-9-servers


相关文档

真没想到居然和 twitter 同量级了,更没想到只有九台服务器…… 好流 bi 啊

总结的真好

图文并茂 :plus1:

国内网站使用 New Relic 会影响访问速度吗?

#6 楼 @fresh_fish 可以不开启它的浏览器端监控

唯一的问题是太贵了

#9 楼 @suupic 免费的也可以啊

hooopo 用 Rails 写 API 服务,性能感觉不足,怎么办? 提及了此话题。 07月28日 16:56
需要 登录 后方可回复, 如果你还没有账号请 注册新账号