SpringMVC + zipkin 实现Web 端行为跟踪

zipkin 参考资料: https://github.com/openzipkin/zipkin

Elasticsearch参考资料: https://www.elastic.co/cn/products/elasticsearch

 第一步: 引入如下 配置

        <!--  brave -->
        <dependency>
            <groupId>io.zipkin.brave</groupId>
            <artifactId>brave</artifactId>
            <version>4.12.0</version>
        </dependency>

        <dependency>
            <groupId>io.zipkin.brave</groupId>
            <artifactId>brave-spring-beans</artifactId>
            <version>4.12.0</version>
        </dependency>
        <!--  http传输方式 -->
        <dependency>
            <groupId>io.zipkin.reporter2</groupId>
            <artifactId>zipkin-sender-okhttp3</artifactId>
            <version>2.2.0</version>
        </dependency>
        
        <dependency>
            <groupId>io.zipkin.brave</groupId>
            <artifactId>brave-instrumentation-spring-web</artifactId>
            <version>4.12.0</version>
        </dependency>
        <dependency>
            <groupId>io.zipkin.brave</groupId>
            <artifactId>brave-instrumentation-spring-webmvc</artifactId>
            <version>4.12.0</version>
        </dependency>

第二步: 增加 spring-mvc.xml中增加配置

    <bean id="sender" class="zipkin2.reporter.beans.OkHttpSenderFactoryBean">
        <property name="endpoint" value="http://localhost:9411/api/v2/spans"/>
    </bean>

    <bean id="tracing" class="brave.spring.beans.TracingFactoryBean">
        <property name="localServiceName" value="pms-web"/>
        <property name="spanReporter">
            <bean class="zipkin2.reporter.beans.AsyncReporterFactoryBean">
                <property name="encoder" value="JSON_V2"/>
                <property name="sender" ref="sender"/>
                <!-- wait up to half a second for any in-flight spans on close -->
                <property name="closeTimeout" value="500"/>
            </bean>
        </property>
        <property name="propagationFactory">
            <bean id="propagationFactory" class="brave.propagation.ExtraFieldPropagation" factory-method="newFactory">
                <constructor-arg index="0">
                    <util:constant static-field="brave.propagation.B3Propagation.FACTORY"/>
                </constructor-arg>
                <constructor-arg index="1">
                    <list>
                        <value>user-name</value>
                    </list>
                </constructor-arg>
            </bean>
        </property>

    </bean>
    <!-- http 追踪 -->
    <bean id="httpTracing" class="brave.spring.beans.HttpTracingFactoryBean">
        <property name="tracing" ref="tracing"/>
    </bean>

    <!-- 拦截 @RestController 请求 -->
    <bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
        <property name="interceptors">
            <list>
                <bean class="brave.spring.web.TracingClientHttpRequestInterceptor" factory-method="create">
                    <constructor-arg type="brave.http.HttpTracing" ref="httpTracing"/>
                </bean>
            </list>
        </property>
    </bean>
    <!-- 拦截 @Controller 请求 -->
    <mvc:interceptors>
        <bean class="brave.spring.webmvc.TracingHandlerInterceptor" factory-method="create">
            <constructor-arg type="brave.http.HttpTracing" ref="httpTracing"/>
        </bean>
    </mvc:interceptors>

以上两步即完成 web 端请求追踪

转载于:https://my.oschina.net/hewep/blog/1592510

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值