Skywalking介绍,Skywalking 9.4 安装,SpringBoot集成Skywalking
一.Skywalking介绍
Apache SkyWalking是一个开源的分布式追踪与性能监视平台,特别适用于微服务架构、云原生环境以及基于容器(如Docker、Kubernetes)的应用部署。该项目由吴晟发起,并已加入Apache软件基金会的孵化器,现已成为顶级项目之一。
核心特性与功能包括:
-
分布式追踪:提供从终端用户请求到后端服务的完整调用链路视图,帮助开发者快速定位分布式系统中的性能瓶颈和错误根源。
-
性能监控:收集并分析服务及服务间调用的性能指标,如响应时间、吞吐量、错误率等,支持服务级和接口级的监控。
-
服务网格观测:除了自动探针外,SkyWalking还能与Istio、Envoy等服务网格集成,通过服务网格的基础探针来收集数据,进一步增强观测能力。
-
多语言支持:SkyWalking原生支持Java、.NET Core等多种语言,并且持续扩展中,同时也提供手动打点SDK以支持更多语言环境,如Go、C++等。
-
自动探针:通过探针(Agents)在无需修改应用程序代码的情况下,利用字节码植入技术收集运行时数据,实现对应用程序性能的透明监控。
-
丰富的插件生态:为常见的基础设施和框架(如Tomcat、Spring、MySQL、Dubbo、Kafka等)提供了丰富的监测插件,易于集成到现有系统中。
-
告警与通知:根据预定义的规则,当检测到性能异常或故障时,能够及时发出告警并通过邮件、短信、Slack等渠道通知相关人员。
-
可视化界面:提供直观的Web UI,展示服务拓扑图、追踪详情、性能指标图表等,便于运维人员和开发团队理解和优化系统性能。
-
可扩展的存储:支持将数据存储在Elasticsearch、H2、MySQL等不同后端,以适应不同规模和需求的场景。
最新版本的SkyWalking(根据之前的更新信息,但请注意实际版本可能已更新)强调了gRPC上报日志的能力,意味着它能够高效地处理现代微服务架构中的大量监控数据传输需求。随着项目的不断发展,其功能集和性能也在不断进化,以更好地服务于日益复杂的云原生应用环境。
2.原理
新版Skywalking 9.x APM监控系统 .mp4(35.1 MB)- 0%
二.Skywalking 9.4 安装
1.创建 docker-compose.yml 的文件
根据你的需求和环境配置相关服务,比如Elasticsearch、SkyWalking OAP Server(OAP : 全称Observability Analysis Platform,可观测性分析平台)、SkyWalking UI等。例如:
version: '3.3'services:skywalking-oap:image: registry.cn-beijing.aliyuncs.com/all100/skywalking-oap-server:9.4.0restart: alwaysenvironment:- SW_STORAGE_ES_CLUSTER_NODES=http://192.168.21.100:9200 # 替换为你的Elasticsearch地址# 可根据需要添加其他环境变量ports:- 11800:11800 # gRPC- 12800:12800 # RESTful API- 11900:11900 # metrics exportskywalking-ui:image: registry.cn-beijing.aliyuncs.com/all100/skywalking-ui:9.4.0restart: alwaysenvironment:- SW_OAP_ADDRESS=http://skywalking-oap:12800ports:- 8080:8080 # SkyWalking UI 访问端口depends_on:- skywalking-oap
2.启动SkyWalking
docker-compose up -d
3.验证安装:
等待所有服务启动完成,可以通过访问SkyWalking UI的默认端口(如http://192.168.21.100:8080)来验证安装是否成功。首次启动Elasticsearch可能需要一些时间来初始化。

三. SpringBoot集成Skywalking
1. 下载Java Agent,
https://skywalking.apache.org/downloads/

2.指定对应的版本下载

apache-skywalking-java-agent(8.8.0-9.2.0,一共12个版本).7z(310.9 MB)
建议使用8.15.0 , 9.x版本有bug
3.解压到任意位置

4.添加VM启动参数

-javaagent:d:optskywalking-agentskywalking-agent.jar -Dskywalking.agent.service_name=bm-member-service-app -Dskywalking.collector.backend_service=192.168.21.100:11800
这三个参数是在启动Java应用时用来配置Apache SkyWalking Java Agent的JVM参数,它们各自代表的意义如下:
-
**
-javaagent:d:optskywalking-agentskywalking-agent.jar**这个参数指定了SkyWalking Java Agent的路径和文件名。当你在启动Java应用时使用这个参数,JVM将会加载这个Agent。在这个例子中,Agent位于d:optskywalking-agentskywalking-agent.jar。Agent负责收集应用的性能数据、追踪信息等,并按照配置发送给SkyWalking后端服务。 -
**
-Dskywalking.agent.service_name=bm-product-service-app**这个系统属性设置了被监控服务的名称。在SkyWalking中,每个应用或服务都需要一个唯一的名称以便于在UI界面识别和管理。在这个例子中,服务名称被设定为bm-product-service-app,这将帮助区分和标识你的应用在SkyWalking监控界面中的显示和报告。 -
**
-Dskywalking.collector.backend_service=192.168.21.100:11800**此参数配置了SkyWalking后端collector(收集器)的服务地址和端口号。数据将被发送到这个地址上进行处理和分析。在这个例子中,collector运行在IP地址为192.168.21.100的主机上,监听端口为11800。确保这个地址是正确的,且SkyWalking OAP Server正在此地址上运行并等待接收数据。
综上所述,这三个参数共同确保了Java应用能够正确地集成SkyWalking监控系统,定义了Agent的位置、服务的标识以及数据上报的目标地址。
5.启动项目,调用接口,验证SkyWalking UI界面


6.高级使用
6.1验证使用环境变量(推荐这种用法,可以和k8s完美结合)
设置了环境变量,包括服务名(
SW_AGENT_NAME)、SkyWalking Collector的地址(SW_AGENT_COLLECTOR_BACKEND_SERVICES),以及通过JAVA_TOOL_OPTIONS来激活Java Agent。

6.2 最终dockerfile文件内容
# 基础镜像
FROM registry.cn-beijing.aliyuncs.com/205erp/myopenjdk:8.5
# 设置工作目录
WORKDIR /opt
# 拷贝jar包到工作目录
COPY target/*.jar app.jar
RUN ls
# 设置暴漏的端口
EXPOSE 8080
# 启动jar包
#ENTRYPOINT ["java","-jar","app.jar"]CMD java ${JAVA_TOOL_OPTIONS} -jar app.jar
6.3 最终k8s.yml文件内容
apiVersion: apps/v1
kind: Deployment
metadata:name: bm-member-service-app
spec:replicas: 1selector:matchLabels:app: bm-member-service-apptemplate:metadata:labels:app: bm-member-service-appspec:containers:- name: bm-member-service-appimage: registry.cn-beijing.aliyuncs.com/205erp/beimao-member-service-app:2024-06-04-21-27-47ports:- containerPort: 8080env: # 添加环境变量配置- name: SW_AGENT_NAMEvalue: "bm-member-service-app"- name: SW_AGENT_COLLECTOR_BACKEND_SERVICESvalue: "192.168.11.221:11800"- name: JAVA_TOOL_OPTIONSvalue: "-javaagent:/skywalking-agent/skywalking-agent.jar"volumeMounts: # 添加日志挂载配置- name: app-logsmountPath: /logsvolumes: # 定义挂载卷- name: app-logshostPath: # 使用HostPath类型挂载到主机path: /logs # 这里填写主机上的日志目录路径type: DirectoryOrCreate # 如果需要自动创建目录
相关文章:
Skywalking介绍,Skywalking 9.4 安装,SpringBoot集成Skywalking
一.Skywalking介绍 Apache SkyWalking是一个开源的分布式追踪与性能监视平台,特别适用于微服务架构、云原生环境以及基于容器(如Docker、Kubernetes)的应用部署。该项目由吴晟发起,并已加入Apache软件基金会的孵化器,…...
Thonny+MicroPython+ESP32开发环境搭建
1、下载&安装Thonny 安装成功后,会在桌面生成快捷键 双击快捷键,打开程序,界面如下 2、下载MicroPython 下载地址:MicroPython - Python for microcontrollers v1.19版(推荐,此版本稳定): https://do…...
数据结构:反射 和 枚举
目录 一、反射 1、定义 2、反射相关的类 3、Class类 (2)常用获得类中属性相关的方法: (3)获得类中注解相关的方法: (4)获得类中构造器相关的方法: (…...
前缀和算法 算法4
算法题中帮助复习的知识 vector<int > dp( n ,k); n为数组大小 ,k为初始化 哈希表unordered_map<int ,int > hash; hash.find(k)返回值是迭代器 ,找到k返回其迭代器 没找到返回hash.end() hash.count(k)返回值是数字 ,找到k返回1 ,没找到返回0. C和java中 负数…...
USRP7440-通用软件无线电平台
1、产品描述 USRP7440基于第三代XILINX Zynq UltraScale RFSoC架构,它将射频ADC、DAC、ARM、FPGA等集成一体,瞬时带宽可以达到2.5GHz,尤其适合于射频直采应用,比如通信与雷达。 第一代RFSOC高达4GHz • 8x 或 16x 6.554GSPS DAC…...
yunedit-post ,api测试比postman更好
postman应该是大家最熟悉的api测试软件了,但是由于它是外国软件,使用它的高端功能注册和缴费都比较麻烦。生成在线文档分享也经常无法访问被拦截掉。 这里可以推荐一下yunedit-post,该有的功能都有。 https://www.yunedit.com/postdetail …...
windows下玩转vllm:在wsl下安装vllm后续,设置modelscope作为下载源
文章目录 前言所涉及的之前的关键步骤解决模型权重下载网络不通畅的问题vllm和modelscope整合后的bug附录 ImportError: cannot import name _try_login from modelscope.utils.hf_util 全部报错信息前言 之前,咱们说了,由于windows不支持直接部署vllm,所以要么采用wsl,要…...
移动零
一 :题目 二:思路 双指针法: 两个指针将数组划分成三个部分: 解释: ①:所以一开始dest要等于-1,因为没有非零的元素,cur0,因为要从头开始遍历数组 ②:cur为…...
MySQL整体架构
目录 1 客户端 2 服务端 2.1 Server层 2.1.1 连接器 2.1.2 查询缓存 2.1.3 词法器 2.1.4 优化器 2.1.5 执行器 2.2 存储引擎层 1 客户端 ● 客户端为连接MySQL服务端的工具或者驱动,比如JDCB,ODBC等等 ● 用于连接目前服务器,并且发送需要执行…...
Linux之yum详解
—— 小 峰 编 程 目录 1、Linux软件的安装方式 2、什么是yum 3、配置网络yum源 4、yum命令 【语法】 【yum常用命令】 1、Linux软件的安装方式 在CentOS系统中,软件管理方式通常有三种方式: rpm安装 、 yum安装 以及 编译安装 。 2、什么是yum…...
大数据学习(52)-MySQL数据库基本操作
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦ᾑ…...
鸿蒙启动页开发
鸿蒙启动页开发 1.1 更改应用名称和图标 1.更改应用图标 找到moudle.json5文件,找到应用启动的EntryAbility下面的icon,将原来的图标改成自己设置的即可 2.更改应用名称 3.效果展示 2.1 广告页面开发 3.1 详细介绍 3.1.1 启动页面 import { PrivacyDialog } fr…...
记忆化搜索(典型算法思想)—— OJ例题算法解析思路
目录 一、509. 斐波那契数 - 力扣(LeetCode) 算法代码: 1. 动态规划 (fib 函数) 初始化: 递推计算: 返回结果: 2. 记忆化搜索 (dfs 函数) 备忘录初始化: 递归终止条件: 递…...
Day11,Hot100(贪心算法)
贪心 (1)121. 买卖股票的最佳时机 第 i 天卖出的最大利润,即在前面最低价的时候买入 class Solution:def maxProfit(self, prices: List[int]) -> int:min_price prices[0]ans 0for price in prices:ans max(ans, price - min_price…...
翻译: 深入分析LLMs like ChatGPT 一
大家好,我想做这个视频已经有一段时间了。这是一个全面但面向普通观众的介绍,介绍像ChatGPT这样的大型语言模型。我希望通过这个视频让大家对这种工具的工作原理有一些概念性的理解。 首先,我们来谈谈你在这个文本框里输入内容并点击回车后背…...
《白帽子讲 Web 安全》之移动 Web 安全
目录 摘要 一、WebView 简介 二、WebView 对外暴露 WebView 对外暴露的接口风险 三、通用型 XSS - Universal XSS 介绍 四、WebView 跨域访问 五、与本地代码交互 js 5.1接口暴露风险: 5.2漏洞利用: 5.3JavaScript 与 Native 代码通信 六、Chr…...
解锁 indexOf、substring 和 JSON.stringify:从小程序图片上传看字符串魔法 ✨
🌟 解锁 indexOf、substring 和 JSON.stringify:从小程序图片上传看字符串魔法 ✨ 在 JavaScript 中,字符串操作和数据序列化是开发中不可或缺的技能。indexOf、substring 和 JSON.stringify 是三个简单却强大的工具,分别用于定位…...
常用的AI文本大语言模型汇总
AI文本【大语言模型】 1、文心一言https://yiyan.baidu.com/ 2、海螺问问https://hailuoai.com/ 3、通义千问https://tongyi.aliyun.com/qianwen/ 4、KimiChat https://kimi.moonshot.cn/ 5、ChatGPThttps://chatgpt.com/ 6、魔塔GPT https://www.modelscope.cn/studios/iic…...
DCN讲解
DCN是DeepFM的升级版,后者是只能做二阶交叉特征,随着阶数上升,模型复杂度大幅提高,且FM网络层较浅,表达能力有限。google团队通过构建深度交叉网络来自动进行特征的高阶交叉,且时空复杂度均为线性增长&…...
前端开发常用的加密算法
以下是前端开发中常用的加密方式及其适用场景的详细说明: 一、核心加密方案 加密类型常用算法特点适用场景对称加密AES、DES、3DES加密解密使用相同密钥,速度快本地存储加密、HTTP Body加密非对称加密RSA、ECC公钥加密私钥解密,安全性高传输…...
5. Nginx 负载均衡配置案例(附有详细截图说明++)
5. Nginx 负载均衡配置案例(附有详细截图说明) 文章目录 5. Nginx 负载均衡配置案例(附有详细截图说明)1. Nginx 负载均衡 配置实例3. 注意事项和避免的坑4. 文档: Nginx 的 upstream 配置技巧5. 最后: 1. Nginx 负载均衡 配置实例 需求说明/图解 windows 浏览器输…...
C++之再识模板template
目录 1.非类型模板参数 2.函数/类模板的特化 3.模板的分离编译 4.总结:模板的优缺点 1. 代码复用性高 2. 类型安全 3. 性能优化 2. 错误信息难以理解 3. 代码膨胀 易错易忽略的语法点: 1. 模板声明和定义分离问题 2. 模板参数推导问题 1.非类…...
【文献阅读】Collective Decision for Open Set Recognition
基本信息 文献名称:Collective Decision for Open Set Recognition 出版期刊:IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING 发表日期:04 March 2020 作者:Chuanxing Geng and Songcan Chen 摘要 在开集识别࿰…...
力扣刷题DAY2(链表/简单)
一、回文链表 回文链表 方法一:双指针 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, L…...
golang 内存对齐和填充规则
内存对齐和填充规则 对齐要求:每个数据类型的起始地址必须是其大小的倍数。 int8(1字节):不需要对齐。int16(2字节):起始地址必须是2的倍数。int32(4字节):起…...
ansible自动化运维工具学习笔记
目录 ansible环境部署 控制端准备 被控制端准备 ansible批量管理主机的方式主要有两种 配置准备: ssh密码认证方式管理机器 密码登录,需要各主机密码相同 配置免密登录 ssh密钥方式批量管理主机 ansible实现批量化主机管理的模式 ansible-doc命令 comman…...
零基础deep seek+剪映,如何制作高品质的视频短片
以下是专为零基础学习者设计的 剪映专业版详细教程+Deep seek配合制 ,包含从入门到精通的系统化教学,配合具体操作步骤与实用技巧: 基于DeepSeek与剪映协同制作高品质视频短片的专业流程指南(2025年最新实践版&#x…...
网络空间安全(4)web应用程序安全要点
前言 Web应用程序安全是确保Web应用程序、服务和服务器免受网络攻击和威胁的关键环节。 一、编写安全的代码 输入验证与过滤:确保所有的用户输入都被正确验证和过滤,以防止注入攻击等安全漏洞。开发者应对URL、查询关键字、HTTP头、POST数据等进行严格的…...
【word】保存重开题注/交叉引用消失,全局更新域问题
目录 一、更新域是什么二、更新域常见问题及解决方法(一)更新域后内容未变化(二)域代码显示异常(三)交叉引用无法更新(四)全选更新域出现错误 三、交叉引用与题注的关系及操作&#…...
大语言模型中的 Token:它们是什么,如何工作?
引言 如果你使用过 ChatGPT 这样的 AI 工具,你可能会好奇:它是如何理解并生成文字的?大语言模型(LLM,Large Language Model)并不是直接处理整个句子或文章,而是拆分成一个个 Token(…...
