Skywalking介绍,Skywalking 9.4 安装,SpringBoot集成Skywalking

一.Skywalking介绍

Apache SkyWalking是一个开源的分布式追踪与性能监视平台,特别适用于微服务架构、云原生环境以及基于容器(如Docker、Kubernetes)的应用部署。该项目由吴晟发起,并已加入Apache软件基金会的孵化器,现已成为顶级项目之一。

核心特性与功能包括:

  1. 分布式追踪:提供从终端用户请求到后端服务的完整调用链路视图,帮助开发者快速定位分布式系统中的性能瓶颈和错误根源。

  2. 性能监控:收集并分析服务及服务间调用的性能指标,如响应时间、吞吐量、错误率等,支持服务级和接口级的监控。

  3. 服务网格观测:除了自动探针外,SkyWalking还能与Istio、Envoy等服务网格集成,通过服务网格的基础探针来收集数据,进一步增强观测能力。

  4. 多语言支持:SkyWalking原生支持Java、.NET Core等多种语言,并且持续扩展中,同时也提供手动打点SDK以支持更多语言环境,如Go、C++等。

  5. 自动探针:通过探针(Agents)在无需修改应用程序代码的情况下,利用字节码植入技术收集运行时数据,实现对应用程序性能的透明监控。

  6. 丰富的插件生态:为常见的基础设施和框架(如Tomcat、Spring、MySQL、Dubbo、Kafka等)提供了丰富的监测插件,易于集成到现有系统中。

  7. 告警与通知:根据预定义的规则,当检测到性能异常或故障时,能够及时发出告警并通过邮件、短信、Slack等渠道通知相关人员。

  8. 可视化界面:提供直观的Web UI,展示服务拓扑图、追踪详情、性能指标图表等,便于运维人员和开发团队理解和优化系统性能。

  9. 可扩展的存储:支持将数据存储在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.0
    restart: always
    environment:
      - SW_STORAGE_ES_CLUSTER_NODES=http://192.168.21.100:9200 # 替换为你的Elasticsearch地址
      # 可根据需要添加其他环境变量
    ports:
      - 11800:11800 # gRPC
      - 12800:12800 # RESTful API
      - 11900:11900 # metrics export

  skywalking-ui:
    image: registry.cn-beijing.aliyuncs.com/all100/skywalking-ui:9.4.0
    restart: always
    environment:
      - SW_OAP_ADDRESS=http://skywalking-oap:12800
    ports:
      - 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参数,它们各自代表的意义如下:

  1. **-javaagent:d:optskywalking-agentskywalking-agent.jar**这个参数指定了SkyWalking Java Agent的路径和文件名。当你在启动Java应用时使用这个参数,JVM将会加载这个Agent。在这个例子中,Agent位于d:optskywalking-agentskywalking-agent.jar。Agent负责收集应用的性能数据、追踪信息等,并按照配置发送给SkyWalking后端服务。

  2. **-Dskywalking.agent.service_name=bm-product-service-app**这个系统属性设置了被监控服务的名称。在SkyWalking中,每个应用或服务都需要一个唯一的名称以便于在UI界面识别和管理。在这个例子中,服务名称被设定为bm-product-service-app,这将帮助区分和标识你的应用在SkyWalking监控界面中的显示和报告。

  3. **-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: 1
  selector:
    matchLabels:
      app: bm-member-service-app
  template:
    metadata:
      labels:
        app: bm-member-service-app
    spec:
      containers:
        - name: bm-member-service-app
          image: registry.cn-beijing.aliyuncs.com/205erp/beimao-member-service-app:2024-06-04-21-27-47
          ports:
            - containerPort: 8080
          env: # 添加环境变量配置
            - name: SW_AGENT_NAME
              value: "bm-member-service-app"
            - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
              value: "192.168.11.221:11800"
            - name: JAVA_TOOL_OPTIONS
              value: "-javaagent:/skywalking-agent/skywalking-agent.jar"
          volumeMounts: # 添加日志挂载配置
            - name: app-logs
              mountPath: /logs
      volumes: # 定义挂载卷
        - name: app-logs
          hostPath: # 使用HostPath类型挂载到主机
            path: /logs # 这里填写主机上的日志目录路径
            type: DirectoryOrCreate # 如果需要自动创建目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/980584.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

卷积神经网络(cnn,He初始化+relu+softmax+交叉熵+卷积核,六)

He初始化relusoftmax交叉熵卷积核,才是cnn,我们推导的公式: **** (p【k】-y【k】)*drelu(yi[k])*w2[j, k]*drelu(hi[j])*x【i】 只能满足:He初始化relusoftmax交叉熵。 我们参考: cnn突破七…

【区块链 + 智慧政务】 伽罗华域:区块链数据溯源系统 | FISCO BCOS 应用案例

由北京伽罗华域科技有限公司打造的区块链数据溯源系统, 实现了数据从生产、管理到共享的全流程可追溯性和安全审计。系统支持数据的全生命周期管理, 包括数据采集、生产、共享等关键流程, 并通过智能合约自动执行数据的存证、共享与安全审计&…

矩阵基本概念

前言 本文隶属于专栏《机器学习数学通关指南》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见《机器学习数学通关指南》 正文 一句话理解矩阵 矩阵是数据排…

本地部署大语言模型-DeepSeek

DeepSeek 是国内顶尖 AI 团队「深度求索」开发的多模态大模型,具备数学推理、代码生成等深度能力,堪称"AI界的六边形战士"。 Hostease AMD 9950X/96G/3.84T NVMe/1G/5IP/RTX4090 GPU服务器提供多种计费模式。 DeepSeek-R1-32B配置 配置项 规…

xss自动化扫描工具-DALFox

声明!本文章所有的工具分享仅仅只是供大家学习交流为主,切勿用于非法用途,如有任何触犯法律的行为,均与本人及团队无关!!! 工具:https://pan.quark.cn/s/3d824b8637f1 目录标题 一、…

P8720 [蓝桥杯 2020 省 B2] 平面切分--set、pair

P8720 [蓝桥杯 2020 省 B2] 平面切分--set、pair 题目 分析一、pair1.1pair与vector的区别1.2 两者使用场景两者组合使用 二、set2.1核心特点2.2set的基本操作2.3 set vs unordered_set示例:统计唯一单词数代码 题目 分析 大佬写的很明白,看这儿 我讲讲…

vue3学习-1(基础)

vue3学习-1(基础) 1. 开始API 风格选项式 API (Options API)组合式 API (Composition API) 快速创建个应用 2.基础1. 创建个应用2.模板语法3.响应式基础reactive() 的局限性[](https://cn.vuejs.org/guide/essentials/reactivity-fundamentals.html#limi…

eMMC安全简介

1. 引言 术语“信息安全”涵盖多种不同的设计特性。一般而言, 信息安全是指通过实践防止信息遭受未经授权的访问、使用、披露、中断、篡改、检查、记录或销毁。 信息安全的三大核心目标为 机密性(Confidentiality)、完整性(Integr…

SpringBoot新闻推荐系统设计与实现

随着信息时代的快速发展,新闻推荐系统成为用户获取个性化内容的重要工具。本文将介绍一个幽络源的基于SpringBoot开发的新闻推荐系统,该系统功能全面,操作简便,能够满足管理员和用户的多种需求。 管理员模块 管理员模块为系统管…

zookeeper-docker版

Zookeeper-docker版 1 zookeeper概述 1.1 什么是zookeeper Zookeeper是一个分布式的、高性能的、开源的分布式系统的协调(Coordination)服务,它是一个为分布式应用提供一致性服务的软件。 1.2 zookeeper应用场景 zookeeper是一个经典的分…

Java 调试模式下 Redisson 看门狗失效

一、场景分析 前几天在做分布式锁测试: 在调试模式下,lock.lock() 之后打上断点,想测试一下在当前线程放弃锁之前,别的线程能否获取得到锁。 发现调试模式下,看门狗机制失效了,Redis 上 30 秒后&#xff0…

FFmpeg入门:最简单的音频播放器

FFmpeg入门:最简单的音频播放器 欢迎大家来到FFmpeg入门的第二章,今天只做一个最简单的FFmpeg音频播放器;同样,话不多说,先上流程图 流程图 以上流程和视频播放器的解码过程基本上是一致的; 不同点在于 S…

基于Python Django的人脸识别上课考勤系统(附源码,部署)

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

【小羊肖恩】小羊杯 Round 2 C+K

题目链接:https://ac.nowcoder.com/acm/contest/100672#question C.是毛毛虫吗? 思路: 其实很简单,假设我们要满足题目所给条件,那么这个毛毛虫最坏情况下肯定是一条如下图所示的无向图 右端省略号为对称图形 &…

PyCharm怎么集成DeepSeek

PyCharm怎么集成DeepSeek 在PyCharm中集成DeepSeek等大语言模型(LLM)可以借助一些插件或通过代码调用API的方式实现,以下为你详细介绍两种方法: 方法一:使用JetBrains AI插件(若支持DeepSeek) JetBrains推出了AI插件来集成大语言模型,不过截至2024年7月,官方插件主要…

安装 Open WebUI

2025.03.01 早上 我已经安装了ollama 和deeseek模型 (本地部署流水账之ollama安装Deepseek安装-CSDN博客),然后需要个与模型沟通的工具(这么说不知道对不对)。 刚开始用的chatbox,安装很方便,…

java后端开发day25--阶段项目(二)

(以下内容全部来自上述课程) 1.美化界面 private void initImage() {//路径分两种://1.绝对路径:从盘符开始写的路径 D:\\aaa\\bbb\\ccc.jpg//2.相对路径:从当前项目开始写的路径 aaa\\bbb\\ccc.jpg//添加图片的时…

基于Spring Boot + Vue的常规应急物资管理系统设计与实现

大家好,今天要和大家聊的是一款基于Spring Boot Vue的“常规应急物资管理系统”的设计与实现。项目源码以及部署相关事宜请联系我,文末附上联系方式。 项目简介 基于Spring Boot Vue的“常规应急物资管理系统”设计与实现的主要使用者分为管理员、员工…

SpringCloud + Spring AI Alibaba 整合阿里云百炼大模型

一、前言 记录一次自己使用微服务整合阿里云的百炼大模型,需要用到Redis来记录最近五条信息,已能够保证上下文的连通性,Ai和用户之间的对话是使用的MongoDB来进行存储。然后我这篇文章是介绍了两种请求方式,一种是通过Http请求&a…

(贪心 合并区间)leetcode 56

思路来源:代码随想录--代码随想录_合并区间题解 首先用lambda 按照左界值升序排序 建立答案的二维数组,将第一个行区间放入,判断从第二行开始 第i行的左区间一定大于第i-1行的左区间(排序过了),所以只判断…