原文地址:http://blog.shanbay.com/archives/998

或许你不太会喜欢异常,特别是那些发生后继而沉默在应用日志里那些,你不知道从何开始,因为它们看起来并非那么平易近人,但是用户吵着他的数据有问题,你只得硬着头皮在多个服务器的日志里,翻箱倒柜,试着从堆栈里发现些什么,但是毫无线索,因为你发现这根本是一桩无头命案:没有足够的上下文,不知道哪个才是这个用户的某个操作引起的异常,请求链接更无从谈起,好吧,再去nginx日志里看看吧……

但幸运的是,我们不是唯一面临这个问题的人,Disqus团队因此而开发了Sentry,它是一款精致的Django应用,目的在于帮助开发人员从散落在多个不同服务器上毫无头绪的日志文件里发掘活跃的异常,继而找到潜在的臭虫,当然这个是概述,像其他监控工具一样,sentry也是分为客户端和服务端,客户端分布在你的每个应用服务器上,在异常发生时django会通知它,继而客户端再把详细的异常信息以及相关的用户、请求数据(包括cookie和环境信息)发送到服务端,这样一来就像sentry网站上鼓吹的,它天生就是实时的了。服务端是一个http server,是接收客户端发送异常信息和相关数据,按照异常名称进行归类存储到单独的数据库中,同时提供漂亮的web界面,方便开发检索异常记录。

在扇贝网部署sentry的当周,我们开发生活就全部围绕在修复bug中——自己写的代码所产生的异常已经发生xxx次了,就摆在sentry web界面,紧急优先级排在前3名,你还不去修复?现在我们每天都会习惯性的前往sentry看看有没有发生新的异常,发布时更是紧盯着sentry这个晴雨表。这样不但可以让开发时刻关注自己的代码质量,也可以了解到一个异常就有可能是一个用户的流失,尽快地修复一个bug就可以最小化损失。

如何部署?

服务端:

1. pip install sentry
2. sentry start

客户端:

1. pip install raven
2. 在django的settings.py文件里的INSTALL_APPS加上一行:

INSTALLED_APPS = [
...
# We recommend adding the client to capture errors # seen on this server as well
'raven.contrib.django',
]

3. 将服务端机器上的sentry配置文件中的SENTRY_KEY一行复制到settings.py文件里
cat ~/.sentry/sentry.conf.py ,复制该行: SENTRY_KEY = xxxxx
4. 指定sentry服务端: SENTRY_SERVERS = ['http://your.sentry.server/sentry/store/']

Sentry Server 日志记录分析服务的更多相关文章

  1. syslog-ng日志收集分析服务搭建及配置

    syslog-ng日志收集分析服务搭建及配置:1.网上下载eventlog_0.2.12.tar.gz.libol-0.3.18.tar.gz.syslog-ng_3.3.5.tar.gz三个软件: ...

  2. Go/Python/Erlang编程语言对比分析及示例 基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池) 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!

    Go/Python/Erlang编程语言对比分析及示例   本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性, ...

  3. Nginx 日志记录post数据,并使用goaccess进行日志分析

    nginx日志默认不会记录post数据 在nginx配置文件的http节 log_format 日志格式标识 [escape=json] 日志格式 比如:日志格式标识设置为main,添加escape= ...

  4. RMS Server打开或关闭日志记录

    原文: https://technet.microsoft.com/zh-cn/library/cc732758 在 Active Directory Rights Management Servic ...

  5. SQL Server 请求失败或服务未及时响应。有关详细信息,请参见事件日志或其它适合的错误日志

    在打开数据库的时候,突然出现异常错误,然后我去关闭sql server 服务,然后重启服务的时候,不能重启,出现以下错误 “请求失败或服务未及时响应.有关详细信息,请参见事件日志或其它适合的错误日志” ...

  6. SSAS(SQL Server 分析服务)、***S(SQL Server报表服务)、SSIS(SQL Server集成服务)

    一.数据仓库入门 实验手册 1. 创建数据源  http://jimshu.blog.51cto.com/3171847/13366622. 创建数据源视图 http://jimshu.blog.51 ...

  7. PHP中错误与异常的日志记录用法分析

    原文:http://www.jb51.net/article/89548.htm ----------------------------------------------------------- ...

  8. [译]SQL Server分析服务的权限配置

    简介: 本文介绍如何配置SSAS数据库和cube相关维度的安全设置. 相对数据引擎来说,在Management Studio中配置分析服务的安全设置基本没什么区别.但是也会有一些限制,比如SSAS的权 ...

  9. 【译】手动处理Team Foundation Server 2010 数据仓库和分析服务数据库

    原贴地址:Manually Processing the Team Foundation Server 2010 Data Warehouse and Analysis Services Databa ...

随机推荐

  1. 第二天——hibernate讲完了

    hibernate 逐步优化 第一步 只按照步骤来提取的 jre包导入错误 第二步 继续封装,把增删改查提取出来,同时进行代码的封装 HQL语句 be stranger in the code .be ...

  2. PHP 开启报错机制

    屏蔽PHP错误提示 方法一:在有可能出错的函数前加@,然后or die("") 如: @mysql_connect(...) or die("Database Conne ...

  3. 基于Android_volley的Get、Post的方法

    用Android_volley加载网络信息有Get,post两种方式,通过一个例子来说明,在Activity中设置两个Button,分别测试Get.post方法 一般分为三步, 1. 创建一个Requ ...

  4. Android开发app如何设定应用图标下的应用名称为汉字以及自定义图标

    一.应用名称为汉字 二.自定义图标

  5. Signalr简单入门,使用注意点

    注意点:1,创建proxy代理时候,继承了hub的类,方法名在js中,同名,但是默认首字母是小写,2,js中代理毁掉方法的名称和继承了hub的类的方法中的Clients.All.的对象名称要一致(名称 ...

  6. 在ASP中调用DLL的方法

    .net的dll已经不是严格意义上的动态连接库了,而是一个类或者类库.它是不能直接在ASP.VB等其它的应用环境中使用的.   我们可以通过COM包装器(COM callable wrapper (C ...

  7. 【转】iOS- 详解文本属性Attributes

    原文: http://www.cnblogs.com/qingche/p/3574995.html?utm_source=tuicool 1.NSKernAttributeName: @10 调整字句 ...

  8. 十二、C# 委托与Lambda表达式(匿名方法的另一种写法)

    委托与Lambda表达式   1.委托概述 2.匿名方法 3.语句Lambda 4.表达式Lambda 5.表达式树   一.委托概述 相当于C++当中的方法指针,在C#中使用delegate 委托来 ...

  9. Win异常: 除了chrome浏览器外,所有安装的软件都连不上网

    经查找资料,是LSP被篡改,恢复后使用正常. 百度百科  LSP: Layered Service Provider, 即分层服务提程序,Winsock 作为应用程序的 Windows 的网络套接字工 ...

  10. Android SlidingMenu开源库及其使用

    极客学院教程: http://www.jikexueyuan.com/course/61_5.html?ss=1 1. SlidingMenu开源库的配置 2. SlidingMenu 的使用 --- ...