如何在同一个webapp中运行Sentry客户端和服务器会影响性能?

时间:2011-07-25 19:13:59

标签: django sentry

我正在考虑为我的Django项目设置Sentry,但我想知道是否将Sentry服务器与我的主webapp一起安装,或者在单独的Web实例中安装。

我可以想到让Sentry在同一个webapp中的好处是:

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

Sentry文档建议herehere在同一个webapp中运行它会降低webapp服务质量,但具体如何?

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

1 个答案:

答案 0 :(得分:8)

除非发生错误,否则Sentry不会执行任何操作,即使这样,对响应时间的影响也可以忽略不计 - 至少与系统上任何其他类型的日志记录一样可以忽略不计。但一般情况下,这不会对您的应用产生影响。

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

首先,高并发性。在这里,您的网站获得了如此多的流量1)您必须剥离服务器以便处理请求(想想Twitter或Facebook)或2)负载足以让您的服务器瘫痪(Digg-effect,尽管现在可能需要重命名),在这种情况下你也会失去Sentry访问权。

第二,QoS影响。在服务器上混合应用程序意味着更多的失败点。如果您的Django项目中存在错误,它可能会使Sentry陷入其中,从而使诊断变得更加困难。或者相反,如果Sentry中的某些东西爆炸,可能会让你的Django项目失败,从而导致潜在的访问者数量,销售额,广告收入等。

问题实际上并非如此(虽然这很重要),但它实际上是关于责任分离和减少失败点。如果您正在运营一个小型网站,那么您可能并不太关心。但是,对于像Disqus(制作Sentry)这样的网站,需要一个隔离的Sentry服务器。