SkyWalking

embedded/2025/3/3 16:38:35/
一、APM系统

APM(Application Performance Monitoring)即应用程序性能监控系统,是对企业系统即时监控以实现对应用程序性能管理和故障管理的系统化的解决方案。应用性能管理,主要指对企业的关键业务应用进行监测、优化,提高企业应用的可靠性和质量,保证用户得到良好的服务,降低IT成本;

二、分布式链路追踪

分布式链路追踪通过跟踪和记录请求在分布式系统中的传播路径和性能数据,帮助开发人员和运维团队分析服务之间的调用关系、排查性能瓶颈和故障;

三、SkyWalking概述

是一个可观测分析平台(OAP)和应用程序性能监控系统(APM),提供分布式链路追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案;

  • 多语言自动探针,Java、.Net Core和Node.js;
  • 多种监控手段,语言探针和service mesh;
  • 轻量高效,不需要额外搭建大数据平台;
  • 模块化架构,UI、存储、集群管理多种机制可选;
  • 支持告警;
  • 优秀的可视化效果;

总之,SkyWalking为服务(Service),服务实例(Service Instance)以及端点(Endpoint)提供了可观测能力:

  • 服务(Service):表示对请求提供相同行为的一组工作负载,在使用代理点或者SDK的时候,可以定义服务的,名字;
  • 服务实例(Service Instance):上述的一组工作负载中的每一个工作负载称为一个实列;
  • 端点(Endpoint):对于特定服务所接收的请求路径;

整体架构组成:

  • 探针:基于不同的来源可能是不一样的, 但作用都是收集数据, 将数据格式化为 SkyWalking 适用的格式;
  • 平台后端:支持数据聚合, 数据分析以及驱动数据流从探针到用户界面的流程。分析包括 Skywalking 原生追踪和性能指标以及第三方来源,包括 Istio 及 Envoy telemetry , Zipkin 追踪格式化等。 你甚至可以使用 Observability Analysis Language 对原生度量指标 和 用于扩展度量的计量系统 自定义聚合分析;
  • 存储:通过开放的插件化的接口存放 SkyWalking 数据. 你可以选择一个既有的存储系统, 如 ElasticSearch, H2 或 MySQL 集群(Sharding-Sphere 管理),也可以选择自己实现一个存储系统. 当然, 我们非常欢迎你贡献新的存储系统实现;
  • UI:一个基于接口高度定制化的Web系统,用户可以可视化查看和管理 SkyWalking 数据;
1. 探针:

在SkyWalking中,探针表示集成到目标系统中的代理或者SDK库,它负责收集遥测数据,包括链路追踪和性能指标。根据目标系统的技术栈,探针可能有差异巨大的方式来达到以上功能,但从根本上来说都是一样的,即收集并格式化数据,并发送到后端。从高层次上来讲,SkyWalking探针可分为以下三组:

  • 基于语言的原生代理:这种类型的代理运行在目标服务的用户空间中,就像用户代码的一部分一样,如SkyWalking Java代理,使用-javaagent命令行参数在运行期间对代码进行操作(自动打点代理利用了虚拟机提供的用于修改代码的接口来动态加入打点的代码,如javaagent premain),另一种代理是使用目标库提供的钩子函数或拦截机制;

  • 服务网格探针:服务网格探针从服务网格的sidecar和控制面板收集数据,在以前,代理只用作整个集群的入口,但是有了服务网格和sidecar之后,就可以基于此进行观测;

    服务网格通常用于描述组成此类应用程序的微服务网络以及它们之间的交互,随着服务网格的大小和复杂性的增长,它会变的更难理解和管理,它需要包括发现、负载平衡、故障恢复、度量和监视以及更复杂的操作需求、金丝雀发布(灰度发布)、限流、访问控制和端到端身份验证;

  • 第三方打点类库:SkyWalking 也能够接收其他流行的打点库产生的数据格式,SkyWalking通过分析数据格式化成自身的链路和度量数据格式,该功能最初只能接收Zipkin的span数据;

四、SkyWalking10.1.0安装(使用ElasticSearch作为存储)

修改apache-skywalking-apm-bin\config\application.yml

storage:selector: ${SW_STORAGE:elasticsearch}elasticsearch:# 索引名namespace: ${SW_NAMESPACE:"es_2024"}# es地址clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:172.xx.xx.xx:9200}protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:3000}socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000}responseTimeout: ${SW_STORAGE_ES_RESPONSE_TIMEOUT:15000}numHttpClientThread: ${SW_STORAGE_ES_NUM_HTTP_CLIENT_THREAD:0}# 账号密码user: ${SW_ES_USER:"elastic"}password: ${SW_ES_PASSWORD:"******"}

Core:做所有数据分析和流调度的基本和主要框架;

Cluster:管理集群中的多个后端实例,提高吞吐量的处理能力;

Storage:持久化分析结果;

Query:提供查询接口给UI;

apache-skywalking-apm-bin\webapp\application.yml

# ui端口
serverPort: ${SW_SERVER_PORT:-8081}# Comma seperated list of OAP addresses.
oapServices: ${SW_OAP_ADDRESS:-http://localhost:12800}zipkinServices: ${SW_ZIPKIN_ADDRESS:-http://localhost:9412}

oapService.bat和webappService.bat修改jdk地址,10.1.0对应的jdk得17及以上(可分别启动也可直接启动start.bat)

set _EXECJAVA="C:\Program Files\Java\jdk-17.0.9\bin\java"

若是监控Spring Cloud Gateway数据,则需将agent\optional-plugins 下的gateway的jar包移动到agent\plugins下

本地JVM参数配置

-javaagent:D:\skywalking\apache-skywalking-apm-bin\agent\skywalking-agent.jar -Dskywalking.agent.service_name=gateway

http://www.ppmy.cn/embedded/169660.html

相关文章

C#委托(delegate)的常用方式

C# 中委托的常用方式,包括委托的定义、实例化、不同的赋值方式以及匿名委托的使用。 委托的定义 // 委托的核心是跟委托的函数结构一样 public delegate string SayHello(string c);public delegate string SayHello(string c);:定义了一个公共委托类型 …

【后端开发面试题】每日 3 题(三)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:https://blog.csdn.net/newin2020/category_12903849.html 📚专栏简介:在这个专栏中,我将会分享后端开发面试中常见的面试题给大家~ ❤️如果有收获的话&#x…

数据库拓展操作

目录 一、截断表: 操作目的: 操作内容: 性能影响: 基本语法: 例子: 二、插入查询结果: 基本语法: 例子: 三、聚合函数: 常用函数: 基…

AI快速变现之路,AI视频创作

以下是针对AI视频创作的快速变现方案,包含详细操作步骤、工具推荐及行业应用案例,结合2025年AIGC技术趋势设计: 一、核心操作流程详解 1. 需求分析与脚本生成 工具推荐:ChatGPT 4.0 + Script Studio(视频脚本专用工具)操作步骤: 通过问卷星收集客户需求(品牌调性/目标…

JAVA【微服务】Spring AI 使用详解

目录 一、前言二、Spring AI 概述2.1 什么是 Spring AI2.2 Spring AI 特点2.3 Spring AI 带来的便利2.4 Spring AI 应用领域2.4.1 聊天模型2.4.2 文本到图像模型2.4.3 音频转文本2.4.4 嵌入大模型使用2.4.5 矢量数据库支持2.4.6 数据工程 ETL 框架三、Spring AI 对接 ChatGPT3.…

NO.22十六届蓝桥杯备战|一维数组|七道练习|冒泡排序(C++)

B2093 查找特定的值 - 洛谷 题⽬要求下标是从0开始的,和数组的下标是吻合的,存放数据应该从下标0开始n的取值范围是1~10000数组中存放的值的绝对值不超10000,说明int类型就⾜够了找到了输出下标,找不到要输出-1,这⼀点…

轻松实现语音生成:GPT-SoVITS V2整合包的远程访问操作详解

文章目录 前言1.GPT-SoVITS V2下载2.本地运行GPT-SoVITS V23.简单使用演示4.安装内网穿透工具4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 今天要给大家安利一个绝对能让你大呼过瘾的声音黑科技——GPT-SoVITS!这款由花儿不哭大佬精心打造的语音克隆神…

Python Cookbook-2.27 从微软 Word 文档中抽取文本

任务 你想从 Windows 平台下某个目录树中的各个微软 Word 文件中抽取文本,并保存为对应的文本文件。 解决方案 借助 PyWin32 扩展,通过COM 机制,可以利用 Word 来完成转换: import fnmatch,os,sys,win32com.client wordapp w…