【问题标题】:Negative response time in Jetty server access logJetty 服务器访问日志中的负响应时间
【发布时间】:2013-12-10 03:13:08
【问题描述】:

我在 Jetty 上运行,我的访问日志被配置为显示响应时间。

今天我注意到极少量的请求(大约 600K 中的 30 个)具有负面响应时间,我想知道是否有人遇到过这种行为。

这是我的回复示例: - - "POST HTTP/1.0" 201 461 -18096

如果您想在访问日志中识别这一点 - 这是我使用的 grep 命令:

grep --color "-[0-9][0-9]*" server-access.2013_12_09.log

码头版本: 8.1.8

jetty.xml 中的设置:

<New id="request-log-handler" class="org.eclipse.jetty.server.handler.RequestLogHandler">
<Set name="requestLog">
  <New class="org.eclipse.jetty.server.NCSARequestLog">
    <Arg>
      <Property name="logging.httpAccessLog" default="logs/app-access.yyyy_mm_dd.log" />
    </Arg>
    <Set name="retainDays">
      <Property name="logging.accessLogRetentionInDays" default="10" />
    </Set>
    <Set name="append">
      <Property name="logging.httpAccessLogAppend" default="true" />
    </Set>
    <!-- logs referer and user agent -->
    <Set name="extended">
      <Property name="logging.httpAccessLogExtended" default="false" />
    </Set>
    <!-- response time -->
    <Set name="logLatency">
      <Property name="logging.httpAccessLogLatency" default="true" />
    </Set>
  </New>
</Set>

【问题讨论】:

  • 什么版本的码头? (具体),并包括您如何在问题中配置访问日志。

标签: jetty


【解决方案1】:

使用 Jetty 9.1.0。

键:

  • &lt;name&gt; = 可选/在线可配置条目
  • {name} = 必填项

&lt;servername&gt; {X-Forwarded-For||remote-addr} - {authentication/principal/name} [{request-timestamp}] "{method} {uri} {protocol}" {response-status-code} {response-content-length} &lt;extended-log&gt; &lt;cookies&gt; &lt;latency&gt;

地点:

有趣的是,您的系统时钟似乎在请求期间进行了调整。整整 18 秒!

这就是为什么这是领先的理论...

request.timestamp is set when the request starts,然后是latency is computed later during the access/request logging。对于负值,Jetty 本身之外的某些东西会重置 request.timeout,或者系统时钟已更改。

【讨论】:

  • 听起来是一个合理的解释,因为: 1. 我看到所有负数都出现在同一时间“块”中; 2. 我有 2 台机器运行我的服务器,其中一台机器的负值大约是 5 秒,而另一台机器的负值大约是 18 秒
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-24
  • 1970-01-01
相关资源
最近更新 更多