1

我正在考虑为我的 Django 项目设置 Sentry,但我想知道是将 Sentry 服务器与我的主 web 应用程序一起安装,还是在单独的 Web 实例中安装。

我能想到在同一个 webapp 中使用 Sentry 的好处是:

  • 易于设置和维护(一个 webapp 而不是两个,并且不需要安装 eventlet 等)
  • 易于管理员使用(例如,使用与 webapp 管理员相同的帐户登录 Sentry)

Sentry 文档在此处此处建议在同一个 Web 应用程序中运行它会降低 Web 应用程序的服务质量,但是具体如何呢?

  • 当没有错误发生时,Sentry 会减慢 webapp 的速度吗?
  • 如果发生许多错误(例如,每分钟 10 个),webapp 会变得非常慢吗?
4

1 回答 1

8

除非发生错误,否则 Sentry 不会做任何事情,即便如此,对响应时间的影响也可以忽略不计——嗯,至少与系统上任何其他类型的日志记录一样可以忽略不计。不过,总的来说,这不会对您的应用产生影响。

文档中提到的集成 Sentry 会出现问题的场景是在高并发环境中以及 QoS(服务质量)是必须的环境中。让我更详细地介绍一下。

一是高并发。在这里,您的网站获得了如此多的流量,以至于 1)您必须将服务器剥离到只为处理请求(想想 Twitter 或 Facebook)或 2)负载足以使您的服务器瘫痪(Digg 效应,尽管现在可能需要重命名),在这种情况下,您也将失去 Sentry 访问权限。

第二,QoS影响。在服务器上混合应用程序意味着更多的故障点。如果您的 Django 项目中有错误,它可能会用它来关闭 Sentry,从而使诊断变得更加困难。或者相反,如果 Sentry 中出现问题,它可能会导致您的 Django 项目失败,从而导致潜在的访问者流失、销售量、广告收入等。

问题实际上不在于性能(尽管这很重要),而在于职责分离和减少故障点。如果您正在运行一个小型站点,那么这对您来说可能并不重要。但是,对于像 Disqus(制作 Sentry)这样的网站,隔离的 Sentry 服务器是必需的。

于 2011-07-25T19:54:22.380 回答