Skywalking 应用笔记

概念

Skywalking是一款分布式的系统 性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。SkyWalking是一款 观察性的分析平台和应用性能管理系统,提供了 分布式追踪、性能指标分析、应用服务依赖分析、可视化一体化等解决方案。

docker安装skywalking

java 复制代码
docker pull apache/skywalking-oap-server:9.2.0
docker pull apache/skywalking-ui:9.2.0
java 复制代码
docker run \
--name skywalking-oap \
--restart always \
-p 11800:11800 \
-p 12800:12800 -d \
--privileged=true \
-e TZ=Asia/Shanghai \
-e SW_STORAGE=elasticsearch \
-e SW_STORAGE_ES_CLUSTER_NODES=192.168.56.10:9200 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-oap-server


-e SW_STORAGE=elasticsearch:存储服务采用ElasticSearch  你的es容器
-e SW_STORAGE_ES_CLUSTER_NODES=192.168.56.10:9200:存储服务路径(IP+Port)


//使用的
docker run --name skywalking-oap -e TZ=Asia/Shanghai -p 12800:12800 -p 11800:11800 --restart always -d apache/skywalking-oap-server:9.2.0
java 复制代码
-e SW_OAP_ADDRESS=192.168.56.10:12800 指定Skywalking OAP服务地址



docker run -d --name skywalking-ui \
 --restart=always \
 -e TZ=Asia/Shanghai \
 -p 8880:8080 \
 --link skywalking-oap:oap \
 -e SW_OAP_ADDRESS=http://oap:12800 \
 apache/skywalking-ui:9.2.0

服务接入

java 复制代码
-javaagent:C:\Users\MGL\Documents\apache-skywalking-java-agent-9.1.0\skywalking-agent\skywalking-agent.jar
-DSW_AGENT_NAME=gateway-skywalking-service
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.56.11:11800

# skywalking-agent.jar 的路径位置
# 在Skywalking中显示的服务名称
# Skywalking的collector服务的IP及端口

持久化

默认h2,修改为mysql

修改里面 的application.yml

下载mysql相关文件,并解压寻找放到相关文件夹,https://downloads.mysql.com/archives/c-j/

自定义SkyWalking链路

java 复制代码
<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-trace</artifactId>
    <version>8.8.0</version>
</dependency>
java 复制代码
//该方法就会被监控
@Trace
//返回信息和参数
@Tags({@Tag(key = "getCategoryTree", value = "returnedObj"),
            @Tag(key = "param", value = "arg[0]")})

returnedObj 这可能需要配合toString,不然可能无法序列化

集成日志框架

java 复制代码
<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-logback-1.x</artifactId>
    <version>8.5.0</version>
</dependency>
java 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!--  控制台日志输出的格式中添加tid  -->
    <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>%d{HH:mm:ss.SSS} [%thread] %-5level logger_name:%logger{36} - [%tid] - message:%msg%n</pattern>
            </layout>
        </encoder>
    </appender>

    <!-- skywalking grpc 日志收集 8.4.0版本开始支持 -->
    <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>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</Pattern>
            </layout>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="console" />
        <appender-ref ref="grpc-log" />
    </root>

</configuration>
java 复制代码
plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:127.0.0.1}
plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT:11800}
plugin.toolkit.log.grpc.reporter.max_message_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760}
plugin.toolkit.log.grpc.reporter.upstream_timeout=${SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30}


告警

相关推荐
刘婉晴2 小时前
【信息安全工程师备考笔记】第三章 密码学基本理论
笔记·安全·密码学
晓数5 小时前
【硬核干货】JetBrains AI Assistant 干货笔记
人工智能·笔记·jetbrains·ai assistant
我的golang之路果然有问题5 小时前
速成GO访问sql,个人笔记
经验分享·笔记·后端·sql·golang·go·database
lwewan5 小时前
26考研——存储系统(3)
c语言·笔记·考研
搞机小能手5 小时前
六个能够白嫖学习资料的网站
笔记·学习·分类
nongcunqq6 小时前
爬虫练习 js 逆向
笔记·爬虫
汐汐咯6 小时前
终端运行java出现???
笔记
无敌小茶8 小时前
Linux学习笔记之环境变量
linux·笔记
帅云毅9 小时前
Web3.0的认知补充(去中心化)
笔记·学习·web3·去中心化·区块链
豆豆9 小时前
day32 学习笔记
图像处理·笔记·opencv·学习·计算机视觉