<a href="/article/family-solon-cloud-trace">生态 / Solon Cloud Trace [传送]</a>

### 1、情况简介

使用 opentracing（全面） 和 CloudTraceService（简单）两套接口，做分布式跟踪服务。 CloudTraceService，只提供 TraceId 传播能力。（目前适配有：water、jaeger、zipkin）

提示：solon-cloud 插件自带了一个默认实现。

### 2、简单示例

通过MDC传递给 slf4j MDC
```java
String traceId = CloudClient.trace().getTraceId();

//MDC 里的记录也可以自定义名字，如：X-TraceId
MDC.put(CloudClient.trace().HEADER_TRACE_ID_NAME(), traceId);
```

通过Http Header 传给后Http节点

```java
HttpUtils.url("http://x.x.x.x")
  .headerAdd(CloudClient.trace().HEADER_TRACE_ID_NAME(), traceId).get();
```

等......（Solon Cloud Log 默认支持 CloudClient.trace() 接口）

### 3、应用示例

使用 与 slf4j 的 MDC 结合

```java
public class TraceIdFilter implements Filter {
    @Override
    public void doFilter(Context ctx, FilterChain chain) throws Throwable {
        String traceId = CloudClient.trace().getTraceId();
        MDC.put("X-TraceId", traceId);
        
        chain.doFilter(ctx);
    }
}
```
