微服务日志追踪,Skywalking接入TraceId功能

一、借助skywalking追加traceId

背景:在微服务或多副本中难以观察一个链路的日志,需要通过唯一traceId标识来查找,下面介绍Skywalking-traceId在Java中的配置方法。介绍两种java日志的配置方法。

logback

  1. pom.xml增加依赖
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-logback-1.x</artifactId>
            <version>8.8.0</version>
        </dependency>
  1. 修改日志配置文件,在相应的appender下加入encoder,注意class和tid字段
    <property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%tid] [%thread] %c [%L] -| %msg%n"/>
    <appender name="CONSOLE" 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.TraceIdPatternLogbackLayout">
                <pattern>${PATTERN}</pattern>
            </layout>
        </encoder>
    </appender>
  1. 官方文档:https://skywalking.apache.org/docs/skywalking-java/next/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/#logback-plugin

log4j2

  1. pom.xml增加依赖
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-log4j-2.x</artifactId>
            <version>8.8.0</version>
        </dependency>
  1. 修改日志配置文件,只需要加入traceId字段即可
<property name="PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} [%traceId] [%thread] [%-5level]  %msg %l%n"/>
  1. 官方文档:https://skywalking.apache.org/docs/skywalking-java/next/en/setup/service-agent/java-agent/application-toolkit-log4j-2.x/#print-trace-id-in-your-logs

效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QwBiQqwC-1665464928340)(http://showdoc.cosmoplat.com/server/index.php?s=/api/attachment/visitFile&sign=e8dccb7e3fdacb59d283f805bcb835b5)]

二、让skywalking显示日志内容

背景:可以通过配置将日志的内容通过gRPC转发给skywalking服务端,进而在用户端查看日志。

版本差异

skywalking 8.7 与 8.8 是版本分水线,关于gRPC这部分的配置不同,以下介绍基于8.8+,java-agent的版本使用8.8+,否则没有GRPCLogClientAppender类。

8.8
日志配置说明:https://github.com/apache/skywalking-java/blob/v8.8.0/docs/en/setup/service-agent/java-agent/Application-toolkit-log4j-2.x.md
配置文件清单:https://github.com/apache/skywalking-java/blob/v8.8.0/docs/en/setup/service-agent/java-agent/configurations.md
8.7
日志配置说明:https://github.com/apache/skywalking-java/blob/v8.7.0/docs/en/setup/service-agent/java-agent/Application-toolkit-log4j-2.x.md
配置文件清单:https://github.com/apache/skywalking-java/blob/v8.7.0/docs/en/setup/service-agent/java-agent/README.md

logback配置文件

    <appender name="GRPC" 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>${PATTERN}</pattern>
            </layout>
        </encoder>
    </appender>

log4j2配置文件

        <GRPCLogClientAppender name="GRPC">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </GRPCLogClientAppender>
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!要将Docker部门的微服务项目接入SkyWalking,您需要按照以下步骤进行操作: 1. 安装SkyWalking Agent:首先,您需要在每个运行微服务的Docker容器中安装SkyWalking Agent。您可以在SkyWalking官方网站上找到Agent的安装指南,并根据您的应用程序语言和框架选择正确的Agent版本。 2. 配置Agent参数:安装完Agent后,您需要在每个容器中配置Agent参数。这些参数可以通过环境变量或配置文件进行设置,具体取决于您的应用程序和Agent的版本。您可以在SkyWalking官方文档中找到关于如何配置Agent参数的详细说明。 3. 配置SkyWalking Collector地址:Agent需要知道SkyWalking Collector的地址,便将跟踪数据发送到Collector进行分析和展示。您可以通过环境变量或配置文件将Collector的地址传递给Agent。确保Agent能够与Collector建立网络连接。 4. 重启容器:在完成Agent参数和Collector地址的配置后,您需要重新启动每个容器,使其加载并使用新的Agent配置。 5. 检查SkyWalking控制台:等待一段时间后,您可以登录到SkyWalking控制台,查看微服务项目的跟踪数据、性能指标和拓扑图等信息。确保您的微服务项目已成功接入SkyWalking。 请注意,以上步骤是一般的指导,具体操作可能会因您的项目架构和SkyWalking版本而有所不同。建议您参考SkyWalking官方文档和示例来完成接入过程,并根据实际情况进行调整。祝您成功接入SkyWalking,并从中获得有价值的监控和诊断信息!如果您还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值