亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot鏈路追蹤skyworking的接入方法

 更新時(shí)間:2024年10月08日 10:17:17   作者:碼至終章  
在SpringBoot項(xiàng)目中引入SkyWalking進(jìn)行鏈路追蹤,需要下載探針jar包,配置logback.xml,設(shè)置啟動(dòng)變量,以實(shí)現(xiàn)服務(wù)調(diào)用監(jiān)控和錯(cuò)誤預(yù)警,本文給大家介紹SpringBoot鏈路追蹤skyworking的接入方法,感興趣的朋友一起看看吧

前言

開(kāi)發(fā)中遇到這樣的一個(gè)常見(jiàn),服務(wù)之間調(diào)用需要鏈路追蹤,并且日志報(bào)錯(cuò)時(shí)能夠及時(shí)預(yù)警,最重要的一點(diǎn)是不要寫(xiě)太多的侵入式代碼,那么我們來(lái)捋捋常用的鏈路追蹤組件,有Google的Dapper,阿里的鷹眼,大眾點(diǎn)評(píng)的CAT,Twitter的Zipkin,LINE的pinpoint,國(guó)產(chǎn)的skywalking。從這些組件分析得出,skyworking是最符合我們的需求。本文也是介紹如何在自己的springboot項(xiàng)目中引入skyworking

探針jar包下載

開(kāi)始服務(wù)接入時(shí),我們首先需要去把探針jar包下載下來(lái)(本章內(nèi)容測(cè)試用的是9.2),下載地址如下
https://archive.apache.org/dist/skywalking/java-agent/

pom文件

引入依賴(lài),這里用的skyworking版本是9.2.0

<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-trace</artifactId>
    <version>9.2.0</version>
</dependency>
<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-logback-1.x</artifactId>
    <version>9.2.0</version>
</dependency>
<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-opentracing</artifactId>
    <version>9.2.0</version>
</dependency>
<!-- logback的版本信息-->
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.2.3</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.5</version>
</dependency>

logback.xml文件

接著我們需要對(duì)自己服務(wù)的logback文件進(jìn)行內(nèi)容添加,其中包括日志的格式、控制臺(tái)的輸出、上傳的方式以及skyworking日志上報(bào)的等等,完整內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
   <springProperty scope="context" name="applicationName" source="spring.application.name"/>
<!-- 日志存放路徑 -->
	<property name="log.path" value="/tmp/logDemo" />
   <!-- 日志輸出格式 -->
	<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} ,[%X{tid}]  [%thread] %-5level %logger{50} - [%method:%line] %msg%n" />
    <!-- 控制臺(tái)輸出 -->
    <appender name="consol" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
                <Pattern>${log.pattern}</Pattern>
            </layout>
        </encoder>
    </appender>
	<!-- 設(shè)置異步方式上報(bào) -->
    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold>0</discardingThreshold>
        <queueSize>1024</queueSize>
        <neverBlock>true</neverBlock>
        <appender-ref ref="consol"/>
    </appender>
    <!--skywalking日志上報(bào)-->
    <appender name="grpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
                <Pattern>${log.pattern}</Pattern>
            </layout>
        </encoder>
    </appender>
    <!--日志文件-->
    <appender name="file_info" class="ch.qos.logback.core.FileAppender">
        <file>${log.path}/info.log</file>
        <!-- 循環(huán)政策:基于時(shí)間創(chuàng)建日志文件 -->
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <Pattern>${log.pattern}</Pattern>
            </layout>
        </encoder>
        <!-- 輸出INFO級(jí)別以上的日志 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>
    <appender name="file_error" class="ch.qos.logback.core.FileAppender">
        <file>${log.path}/error.log</file>
        <!-- 循環(huán)政策:基于時(shí)間創(chuàng)建日志文件 -->
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <Pattern>${log.pattern}</Pattern>
            </layout>
        </encoder>
        <!-- 輸出ERROR級(jí)別日志 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
    </appender>
    <root level="trace">
        <appender-ref ref="grpc-log" />
        <appender-ref ref="ASYNC"/>
    </root>
</configuration>

服務(wù)啟動(dòng)變量

在啟動(dòng)服務(wù)時(shí)需要加上一些啟動(dòng)變量,如

-javaagent:D:\skywalking-agent\skywalking-agent.jar
-Dskywalking.agent.service_name=easy-code::biz-api
-Dskywalking.collector.backend_service=192.168.111.111:11800
  • 需要指定skyworking的服務(wù)地址(192.168.111.111:11800
  • skywalking-agent.jar時(shí)skyworking提供的代碼jar包,記得需要把整個(gè)文件夾一起,不能單獨(dú)一個(gè)jar,否則會(huì)出現(xiàn)tid不顯示的情況
  • service_name表示該服務(wù)的服務(wù)名(log-test),如果有多個(gè)服務(wù)想歸納到一個(gè)組,可以這樣設(shè)置(local::log-test)

啟動(dòng)項(xiàng)目

本次測(cè)試的是兩個(gè)服務(wù)之間進(jìn)行調(diào)用,具體是是biz-api服務(wù)調(diào)用user服務(wù),調(diào)用方式為feign
啟動(dòng)項(xiàng)目后,我們可以看到控制臺(tái)有定時(shí)任務(wù)打印的日志,其中有我們執(zhí)行格式的tid

從skyworking控制臺(tái)【服務(wù)】=》【Trace】可以查看到鏈路調(diào)用的信息

同樣我們也可以查看到服務(wù)上報(bào)的具體日志

到此這篇關(guān)于SpringBoot鏈路追蹤skyworking的接入的文章就介紹到這了,更多相關(guān)SpringBoot鏈路追蹤skyworking內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring MVC Annotation驗(yàn)證的方法

    Spring MVC Annotation驗(yàn)證的方法

    這篇文章主要介紹了Spring MVC Annotation驗(yàn)證的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • 聊聊finally中的代碼一定會(huì)執(zhí)行嗎

    聊聊finally中的代碼一定會(huì)執(zhí)行嗎

    通常在面試中,只要是疑問(wèn)句一般答案都是“否定”的,因?yàn)槿绻恰按_定”和“正?!钡?那面試官就沒(méi)有必要再問(wèn)了嘛,本文想和大家聊聊finally中的代碼一定會(huì)執(zhí)行嗎?,感興趣的朋友跟著小編一起來(lái)看看吧
    2023-12-12
  • 關(guān)于JSON.toJSONString()和Gson.toJson()方法的比較

    關(guān)于JSON.toJSONString()和Gson.toJson()方法的比較

    本文介紹了兩種將Java對(duì)象轉(zhuǎn)換為JSON字符串的方法:阿里的`JSON.toJSONString()`和谷歌的`Gson.toJson()`,通過(guò)一個(gè)示例,展示了當(dāng)使用繼承關(guān)系且子類(lèi)覆蓋父類(lèi)字段時(shí),`Gson`會(huì)報(bào)錯(cuò),而`JSON`可以正常運(yùn)行,作者建議在處理JSON相關(guān)操作時(shí)使用阿里的`JSON`類(lèi)
    2024-11-11
  • 詳細(xì)分析java線(xiàn)程wait和notify

    詳細(xì)分析java線(xiàn)程wait和notify

    本篇文章是對(duì)java多線(xiàn)程wait()和notify()進(jìn)行了詳細(xì)的分析介紹,需要了解的朋友參考下
    2015-07-07
  • Spring Security 實(shí)現(xiàn)用戶(hù)名密碼登錄流程源碼詳解

    Spring Security 實(shí)現(xiàn)用戶(hù)名密碼登錄流程源碼詳解

    在服務(wù)端的安全管理使用了Spring Security,用戶(hù)登錄成功之后,Spring Security幫你把用戶(hù)信息保存在Session里,但是具體保存在哪里,要是不深究你可能就不知道,今天小編就帶大家具體了解一下Spring Security實(shí)現(xiàn)用戶(hù)名密碼登錄的流程
    2021-11-11
  • spring拓展之如何定義自己的namespace

    spring拓展之如何定義自己的namespace

    這篇文章主要介紹了spring拓展之如何定義自己的namespace方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • spring boot + mybatis實(shí)現(xiàn)動(dòng)態(tài)切換數(shù)據(jù)源實(shí)例代碼

    spring boot + mybatis實(shí)現(xiàn)動(dòng)態(tài)切換數(shù)據(jù)源實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于spring boot + mybatis實(shí)現(xiàn)動(dòng)態(tài)切換數(shù)據(jù)源的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • 在Java的JDBC使用中設(shè)置事務(wù)回滾的保存點(diǎn)的方法

    在Java的JDBC使用中設(shè)置事務(wù)回滾的保存點(diǎn)的方法

    這篇文章主要介紹了在Java的JDBC使用中設(shè)置事務(wù)回滾的保存點(diǎn)的方法,JDBC是Java用于連接各種數(shù)據(jù)庫(kù)的API,需要的朋友可以參考下
    2015-12-12
  • response文件流輸出文件名中文不顯示的解決

    response文件流輸出文件名中文不顯示的解決

    這篇文章主要介紹了response文件流輸出文件名中文不顯示的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java導(dǎo)出csv方法實(shí)現(xiàn)講解

    java導(dǎo)出csv方法實(shí)現(xiàn)講解

    這篇文章主要介紹了java導(dǎo)出csv的方法,客戶(hù)要求在項(xiàng)目中有導(dǎo)出CSV文件的功能,并且給出了如何在不知道如何在不知道對(duì)象類(lèi)型(沒(méi)有應(yīng)用泛型)的List中如何得到對(duì)象的屬性值,下面就詳細(xì)說(shuō)下這個(gè)功能是如何實(shí)現(xiàn)的
    2013-12-12

最新評(píng)論