Dropwizard添加过滤器以记录相关ID

时间:2018-10-02 20:53:57

标签: java dropwizard

我正在研究一个基于dropwizard的项目。我想在过滤器上记录进入请求的HTTP标头上的相关性ID,并在响应中出现故障时也将其记录下来。任何想法如何做到这一点?我正在做一个过滤器:

public class CorrelationIdServerFilter implements Filter {

@Override
public void init(FilterConfig filterConfig) throws ServletException {

}

@Override
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain)
  throws IOException, ServletException {


}

@Override
public void destroy() {

}

然后将其注册到我的应用程序类中。

如何捕获并记录相关ID?

1 个答案:

答案 0 :(得分:3)

可以随时使用解决方案:

https://github.com/dhatim/dropwizard-correlation-id/blob/master/src/main/java/org/dhatim/dropwizard/correlationid/CorrelationIdClientFilter.java

模式非常简单,请验证request是否已经有CorrelationId标头,如果是,则将标头添加到ThreadLocal的{​​{1}}或其他地方很容易检索数据。如果没有生成新的,通常是MDC

UUID标头传递给您调用的所有服务,请注意线程切换,例如如果是异步调用或使用Hystrix等断路器。

如果您使用的是使用MDC或类似工具的记录器,则将标头添加到您的记录模式中。

将标题添加到响应中。