我想创建一个监视器,该监视器将显示近乎实时的nginx平均响应时间。
下图显示了CPU使用率,例如,我想为avg response time
创建类似的内容
我知道如何跟踪单个请求(https://lincolnloop.com/blog/tracking-application-response-time-nginx/)的响应时间
尽管我将不得不考虑如何忽略非页面/ api请求,例如静态图像请求。
这必须是非常基本的要求,但找不到Google该怎么做。
答案 0 :(得分:1)
这实际上比您预期的要复杂:
Metricbeat的nginx模块不包含此信息。它建立在stubstatus and is more around the process itself周围,而不是单个请求的时间安排。
您可能期望在Filebeat的nginx模块上看到它。它围绕nginx访问日志构建,并具有各个请求。不幸的是,默认情况下,响应时间不是访问日志的一部分(至少在Ubuntu上是这样),而只是发送的字节数。这是一个示例(响应代码200,发送了158个字节):
34.24.14.22 - - [10/Nov/2019:06:54:51 +0000] "GET / HTTP/1.1" 200 159 "-" "Go-http-client/1.1"
此字段有一个名为event.duration
的字段,听起来很有希望。但是请注意HTTP模块-该模块实际上仅用于HTTP流量,而不是HTTPS(因为您看不到加密的流量)。在大多数情况下,您将希望对应用程序使用HTTPS,因此这并不是很有用,它通常会显示重定向到HTTPS。
其他协议,例如TLS(这只是初始握手的时间)或Flow信息(这是group of packets),与IMO无关。
恐怕您需要一些自定义,并且您基本上有两个选择: