跳到主要内容

Eclipse Jetty 和 Jersey 监控

DeepSeek V3 中英对照 Jetty and Jersey Eclipse Jetty and Jersey Instrumentation

Jetty

Micrometer 支持通过 Connection.Listener 将指标绑定到 Jetty。

你可以通过使用 JettyConnectionMetrics 配置 Jetty Connector 来收集指标,如下所示:

Server server = new Server(0);
NetworkTrafficServerConnector connector = new NetworkTrafficServerConnector(server);
JettyConnectionMetrics metrics = new JettyConnectionMetrics(registry, connector);
connector.addBean(metrics); 1
connector.setNetworkTrafficListener(metrics); 2
server.setConnectors(new Connector[] { connector });
java
  • 注册通用连接指标

  • 为此连接器注册输入/输出字节的指标

或者,你可以按照以下方式将指标检测应用于 Server 上的所有连接器:

JettyConnectionMetrics.addToAllConnectors(server, registry);
java

连接指标也可以在客户端上进行配置,但在检测客户端时,字节输入/输出将不可用。

HttpClient httpClient = new HttpClient();
httpClient.addBean(new JettyConnectionMetrics(registry));
java

Jersey

Micrometer 还支持通过 ApplicationEventListener 将指标绑定到 Jersey。

你可以通过添加 MetricsApplicationEventListener 来从 Jersey 收集指标,如下所示:

ResourceConfig resourceConfig = new ResourceConfig();
resourceConfig.register(new MetricsApplicationEventListener(
registry,
new DefaultJerseyTagsProvider(),
"http.server.requests",
true));
ServletContainer servletContainer = new ServletContainer(resourceConfig);
java

Eclipse 观察 Jersey 仪表化

你可以在下面找到一个如何使用 Micrometer Observation 来对 Jersey 进行插桩的示例。这意味着根据你的 Observation Handler 配置,你只需插桩一次,就可以获得多种好处(例如指标、分布式追踪)。

// Setting up instrumentation
new ObservationApplicationEventListener(getObservationRegistry(), timerName())
ResourceConfig config = new ResourceConfig();
config.register(listener);
java