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}


告警

相关推荐
西岭千秋雪_1 小时前
Redis缓存架构实战
java·redis·笔记·学习·缓存·架构
XvnNing1 小时前
【Verilog硬件语言学习笔记4】FPGA串口通信
笔记·学习·fpga开发
海棠蚀omo1 小时前
C++笔记-位图和布隆过滤器
开发语言·c++·笔记
大胡子大叔1 小时前
webrtc-streamer视频流播放(rstp协议h264笔记)
笔记·webrtc·rtsp·webrtc-streamer
山野万里__3 小时前
C++与Java内存共享技术:跨平台与跨语言实现指南
android·java·c++·笔记
寻丶幽风5 小时前
论文阅读笔记——VGGT: Visual Geometry Grounded Transformer
论文阅读·笔记·transformer·三维重建·3dgs·vggt
天水幼麟5 小时前
python学习笔记(深度学习)
笔记·python·学习
you45806 小时前
小程序学习笔记:使用 MobX 实现全局数据共享,实例创建、计算属性与 Actions 方法
笔记·学习·小程序
笑衬人心。6 小时前
初学Spring AI 笔记
人工智能·笔记·spring
UQI-LIUWJ7 小时前
计算机组成笔记:缓存替换算法
笔记·缓存