使用嵌入式Jetty计算每秒请求数

时间:2017-05-30 07:24:56

标签: embedded-jetty

我有一个嵌入式Jetty服务器,我想知道它当前正在服务的每秒请求数。

有没有办法从Jetty获得这个号码?或者甚至是我可以定期查询和计算自己的RPS的总请求数量?

1 个答案:

答案 0 :(得分:0)

您正在寻找的内容存在于Statistics处理程序中。

处理程序允许对请求统计信息进行收集级别

  1. AbstractConnector
  2. 的子类收集有关连接和请求数的统计信息
  3. 收集请求统计信息的StatisticsHandler
  4. 可以通过SessionHandler和DefaultSessionCache

    的子类收集会话统计信息

    默认情况下,AbstractConnector,SessionHandler和DefaultSessionCache统计信息处于关闭状态,必须手动为每个实例配置或通过JMX接口打开。

    StatisticsHandler不包含在默认的Jetty配置中,需要手动配置。

    您可以使用Jetty xml

    中的以下配置打开该集合
    <Call name="addConnector">
        <Arg>
          <New class="org.eclipse.jetty.server.ServerConnector">
            <Arg name="server"><Ref refid="Server" /></Arg>
            <Arg name="factories">
              <Array type="org.eclipse.jetty.server.ConnectionFactory">
                <Item>
                  <New class="org.eclipse.jetty.server.HttpConnectionFactory">
                    <Arg name="config"><Ref refid="httpConfig" /></Arg>
                  </New>
                </Item>
              </Array>
            </Arg>
            <Set name="host"><Property name="jetty.host" /></Set>
            <Set name="port"><Property name="jetty.http.port" default="8080" /></Set>
            <Set name="idleTimeout">30000</Set>
            <!-- Enable Connection Statistics -->
            <Call name="addBean">
              <Arg>
                  <New id="ConnectionStatistics" class="org.eclipse.jetty.io.ConnectionStatistics"/>
              </Arg>
            </Call>
          </New>
        </Arg>
      </Call>
    

    Documentation