生成所有nodejs服务器请求和响应的图形报告

时间:2019-03-25 16:26:44

标签: node.js express

我将nodejs用作我的Express服务器。我将所有请求和响应记录在服务器上。是否有可用的软件包来读取我的日志并生成图形报告,例如我们收到了多少请求以及成功了多少。收到并答复了什么请求。是否有可以为我跟踪所有这些详细信息的软件包?

1 个答案:

答案 0 :(得分:0)

听起来您正在尝试获取有关应用程序的一些性能指标,这很棒。您可以通过多种方法来进行此操作,以下是一些建议供您权衡。

非实时效果指标

如果您不希望看到服务实时指标,则可能需要创建一些东西以将它们处理为CSV,并使用excel或google表格之类的东西来从中生成图形。如果您立即需要某些东西,而又不需要在出现跌落时“立即”响应,那么这是一个很好的解决方案。

使用SaaS软件的实时性能指标

如果您想要指标但又不想自己托管系统,则可能要签出DataDog等服务。他们提供仪表板和图形即服务。您可以使用statsd之类的指标将指标导入DataDog,或使用其自身的集成。他们与AWS,GCP和Azure之类的云提供商进行了很多集成,以实现机器指标(CPU等)。它们还具有与您的应用程序本身兼容的软件包,例如ExpressJS package

使用自托管解决方案的实时性能指标

我经常使用自托管方法,因为我发现定价通常会更好一些。设置非常简单。

  • 对所有系统组件(nginx,nodejs,postgres等)使用statsd包,以将度量标准发布到statsd守护程序。
  • statsd守护程序自托管在某个地方(如果正在处理大型应用程序,则可能是代理群集)。
  • 自托管的Graphite消耗statsd守护程序中的指标。 Graphite是一个用于汇总指标的软件包,并具有用于生成静态图形图像的API。
  • 自承载的Grafana,可从石墨中提取指标。 Grafana是一种实时仪表板软件。它使您可以创建多个仪表板,这些仪表板可以连接到各种数据源,例如Graphite或其他时间序列数据存储。

自托管路由可能需要一天的时间来设置,但这确实意味着您不会增加每台主机的成本。如果您的组织需要这样做,也很容易将内部网络置于后面。

我个人建议使用实时性能指标方法。如果您的应用程序很小并且没有很多主机,那么诸如DataDog之类的服务可能会有用且具有成本效益,但是如果您确实需要扩大规模,您会发现成本飞涨。届时,您可能会决定移至自托管基础架构。