基于Skywalking开发分布式监控(二)

分布式链路追踪-SkyWalking SkyWalking是开源的可观测平台,主要用于收集,分析,聚合和可 视化服务和云原生基础设施的数据。Skywalking提供了一种简单得 方式来维护分布式系统得视图关系。在开发过程中,开发人员经常会使用IDEA的Debug功能(包含本地 和远程)调试应用,在JVM进程期间获取应用运行的JVM信息,变量 信息等。这些个技术通过Java Agent来实现的,那么Java Agent到 底是啥,为啥这么吊?idea得Debug功能热部署 JRebel各种线上诊断工具代码覆盖率工具性能分析。 阅读详情

续上篇,上一篇主要是讲了为啥选skywalking,以及怎么有针对性改造SW Agent,现在我们继续看看如何构建自定义Trace跟踪链

  1. 要对SW Agent插件做适当剪裁,原来包括customize插件在内SW 8.9有100多个插件,如果没有作用也就罢了,但是有些插件会产生大量trace和span数据,用处不大,但是会干扰需要聚焦的数据,例如一次最多查10000个trace,但有可能绝大部分都不是用户关注的,而用户关注的数据,又被淹没在无用数据中——因为运行中系统还在大量产生新的数据。
    裁剪的原则是,根据应用实际,用户关注什么技术/框架,就留什么SW Agent,然后漏掉什么加什么,比如需要跟踪kafka再加,我们最终裁剪到大约30个左右,专门建立一个目录,然后把目录路径加载到JVM变量里。
    另外需要注意,不同节点/服务所使用插件可以不同,但要注意衔接,例如dubbo,生成者服务和消费者服务都需要配置相关的有效SW Agent。

  2. 构建customize-enhance.xml
    这部分的基本方法就不赘述了,可以看官方文档https://skywalking.apache.org/docs/skywalking-java/next/en/setup/service-agent/java-agent/customize-enhance-trace/
    这里说两点:
    1) tag标签设计,customize-enhance中的tag数据如果设计得当不仅仅能显示运行时的状态,而且可以在筛选指定类型trace方面发挥作用,这个需要和SW OAP配置文件application.yml中searchableTracesTags配置项配合使用,可以通过UI组件 Trace板块中实现按tag搜索所需的trace list,实际上可以实现在整个业务流程中根据标签精准跟踪相关业务,后续可以进一步结合导出SW OAP数据进行深加工
    例如

<enhanced>
     <class class_name="com.quant.trade.service.baseImpl.OrderServiceImpl">
          <method method="sendOrder(com.quant.trade.service.contract.OrderVO)" operation_name="/sendOrder" static="false">
                 <operation_name_suffix>arg[0].modelId</operation_name_suffix>
                            <tag key="modelId">arg[0].modelId</tag>
	<tag key="userNumber">arg[0].userNumber</tag>
	<tag key="refId">arg[0].refId</tag>
	<tag key="systemFlag">arg[0].getSystemFlag()</tag>
	<log key="infoMsg">arg[0].getSystemFlag()</log>
         </method>
         ...
</class>
...
</enhanced>

OAP的application.yml中配置

# Define the set of span tag keys, which should be searchable through the GraphQL.
searchableTracesTags: ${SW_SEARCHABLE_TAG_KEYS:http.method,status_code,db.type,db.instance,mq.queue,mq.topic,mq.broker,modelId,refId,systemFlag}

其中modelId(策略编号),refId(报价编号),systemFlag(系统标志,)是用户自定义增加的, 可以在UI组件按上述tags进行查询
例如,按systemFlag=2查询
按
2) 关于customize-enhance.xml 跟踪方法入参如果是复杂类型怎么提取tag数据,这部分官网说的不太清楚,可以参考我之前的写的blog
关于Skywalking Agent customize-enhance-trace对应用复杂参数类型取值
总之要对入参的类型和方法要有充分了解,不要机械套用官网的说明

完成Agent的修补和customize-enhance.xml 就可以构建自定义Trace链,可以在UI的查询,一般可以用两种方式定位Trace
1) 按Service Instance Endpoint名字搜索定位,注意 Endpoint需要SW Agent构建的EntrySpan才能搜索,如果是自定义的Local则不能用这个办法
在这里插入图片描述

2) 用刚才提到的tag查询,不再赘述。

到目前位置,我们已经完成自定义监控构建,那是不是已经万事大吉了,还没有,思考几个问题

  1. Scope Metrics 只有SW Agent构建的标准化的Endpoint,instance和Service才有比较多监控项,但是用户定义的Trace却没有办法计算和展示监控项(metrics)

  2. 虽然SW UI结合Tags搜索较为灵活,但终究是作用于一个span上,即同一个操作或者方法上,但如果要求同时满足,调用方法1(span1)按策略号搜索,且endpointName为XXX的trace,则力不从心。比如搜索 网页发起(按endpointName)的某个策略号(tag systemFlag=2)统计跟踪情况,就无能为力了

  3. 如果要深入分析哪些操作方法最耗时的,需要跨trace综合分析span的信息,肯定也是做不到的

拿怎么解决这个问题呢,下一篇我们会讨论基于GraphQL用户接口的二次开发,解决上述问题

分布式链路追踪之SkyWalking 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成。这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用了哪些应用,哪些模块,哪些节点及调用的先后顺序?如何定位每个模块的性能问题?本文将为你揭晓答案。衡量一个接口的性能好坏,一般我们至少会关注以下三个指标。 阅读详情

相关推荐

SkyWalking_apm性能监控指标介绍

skywalking监控系统详细介绍,案例接入演示

Aahg521626的博客 3813

【后端-SkyWalking】SkyWalking前后端开发环境搭建详细教程步骤-6.x/7.x/8.x版本通用-插件二次开发利器(一)

SkyWalking前后端开发环境搭建详细步骤,方便进行二次开发,适用于6.x/7.x/8.x的通用搭建工程方案,介绍skywalking原理设计,使用码云Gitee解决国内访问慢问题,做到最快搭建,最快上手!

Ric的博客 5491

分布式之Skywalking

Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品,它同时吸收了Zipkin /Pinpoint /CAT 的设计思路。特点是:支持多种插件,UI功能较强,支持非侵入式埋点。目前使用厂商最多,版本更新较快。数据存储支持:Elasticsearch、MySQL、H2、TiDB。默认是H2,而且是存到内存。实际我们一般将其存到ES。主页:http://skywalking.apache.org/

励志成为一名优秀的全能型软件开发工程师。 1578

skywalking使用kafka传输数据

skywalking使用kafka传输数据

wangshui898的专栏 5452

链路追踪Skywalking应用实战

目录 1 Skywalking应用 2 agent下载 3 agent应用 3.1 应用名配置 3.2 IDEA集成使用agent 3.3 生产环境使用agent 4 Rocketbot 4.1 Rocketbot-仪表盘 4.2 Rocketbot-拓扑图 4.3 追踪 4.4 性能分析 4.5 告警 4.5.1 警告规则详解 4.5.2 Webhook规则 4.5.3 自定义Webhook消息接收

赵广陆 1080

SkyWalking集成Kafka实现日志异步采集经验总结

SkyWalking异步日志采集 1、kafka-reporter-plugin-x.x.x.jar包放plugins目录后必走kafka(kafka没有正确配置就会报错) 2、异步不开启数据压缩,数据量较大,pod多、业务大时容易造成网络拥堵 3、SW_AGENT_INSTANCE_NAME默认:UUID@hostname,建议调整为:nodeip@podip 4、SkyWalking OAP配置启用kafka并配置好后,OAP启动时会自动创建Topic 5、需要开启数据压缩,否则容易造成网络拥堵

搬砖工 2879

分布式监控Skywalking安装及使用教程(保姆级教程)

本文主要讲解分布式链路追踪监控系统Skywalking的安装及使用教程,从0到1,图文并茂的保姆级教程。SkyWalking是一款用于分布式系统跟踪和性能监控的开源工具。它可以帮助开发人员了解分布式系统中不同组件之间的调用关系和性能指标,从而进行故障排查和性能优化。它支持多种语言和框架,包括Java、.NET、Node.js等。它通过在应用程序中插入代理或使用特定的SDK来收集跟踪数据,并将这些数据发送到SkyWalking服务器进行分析和展示。分布式跟踪。

chang_mao的博客 1万+

skywalking+es+kafka部署文档.docx

详细介绍了skywalking8.4 + kafka + es7配置搭建过程

基于Skywalking开发分布式监控(四)一个案例

通过一个例子,简单介绍一下自定义增强数据计算模块配合SW更好的完成Trace和Span信息获取,加工和展示

zhyuli的博客 1643

Materials Studio与LAMMPS联合作战:如何用msi2lmp.exe完美转换聚合物模型(含PCFF力场配置)

本文详细解析了如何利用msi2lmp.exe工具将Materials Studio中的聚合物模型高效、准确地转换为LAMMPS可识别的data文件,并重点配置PCFF力场。文章提供了从MS模型构建、文件导出到命令行转换、参数调整及转换后验证的全流程实战指南与避坑技巧,旨在帮助研究者解决模型转换中的常见问题,实现跨平台分子动力学模拟的无缝衔接。

weixin_29228781的博客 520

shopee app算法分析第一篇

shopee app算法分析第一篇分析完整算法大概要好几篇,耐心等待下.国内只会发律师函,牛逼,一个律师套话,一个律师发函,大意了(警惕卡通律师头像),希望law可以保护好你,还是干国外好.

2531

基于Skywalking开发分布式监控(三)

开发java开发的数据处理模块TraceProcessor,获取SW的trace和Span数据,然后进行加工处理后在ES进行持久化,直接展示ES的数据。TraceProcessor的主要架构是基于多线程多任务的定时任务,定时获取,计算Trace数据,并支持Graphql,ES接口,以及按配置定制任务的能力,以满足敏捷灵活的开发需求。

zhyuli的博客 1643

STM32CubeMx配置串口使用printf函数打印数据(HAL库开发)

HAL库开发串口,打印printf

m0_58832575的博客 6289

分布式链路追踪(二):深入SkyWalking——国产APM工具的监控利器

在2025年的最新版本中,SkyWalking进一步加强了日志集成能力。通过TraceID将链路追踪与业务日志关联,实现了真正的端到端可观测性。当发现某个服务出现性能问题时,可以直接通过TraceID关联查询相关的业务日志,大大提升了故障排查效率。配置日志集成相对简单,只需在logback或log4j2配置中添加SkyWalking的日志组件:通过前文的系统介绍,我们已经全面了解了SkyWalking作为国产优秀APM工具的核心价值。

zuiyuelong的博客 1391

【QGIS入门实战精品教程】4.2:QGIS矢量数据采集(地图数字化)案例教程

本文基于上一个实验栅格数据地理配准,讲述在QGIS中创建shp格式矢量数据(点、线、面)并进行矢量数据的采集与编辑。 文章目录一、实验数据及任务二、创建Shapefile图层三、数字化超详细步骤 一、实验数据及任务 1. 实验数据:为了保证实验的连贯性,本次实验采用的数据为上一个实验地理配准的结果数据,为配准后的甘肃省地图。 参考阅读:【QGIS入门实战精品教程】4.1:QGIS栅格数据地理配准完整操作流程 添加实验数据: 2. 实验任务:本实验任务为以配准后的甘肃省地图为底图,创建点状(地级市.

智慧空间实验室 3383

AD(十四)调用已有的PCB元件封装库

软件:Altium Designer 16 需要资料:已有的PCB原理图文件(.PCBDOC)或者PCB库文件(.PCBLIB)(来源文中细说) 调用已有的PCB元件封装库(一)从已有的PCB原理图文件(*.PCBDOC)中调用1、PCB原理图文件来源2、打开已有的PCB原理图文件(*.PCBDOC)3、生成PCB封装库4、复制封装到工程文件下的PCB库文件(*.PCBLIB)5、重名问题(二)从已有的PCB库文件(*.PCBLIB)中调用1、PCB库文件(*.PCBLIB)的来源2、打开已有的PCB库 (

Curnane0_0的博客 5083

【PmHub后端篇】Skywalking:性能监控与分布式追踪的利器

在微服务架构下,Skywalking可实现性能监控和分布式追踪。介绍了分布式链路追踪原理,Skywalking的架构、搭建(服务端和客户端)、日志监控等内容,还对比了其他技术,利用Skywalking可提升系统性能与可维护性。

专注Java和MySQL领域知识分享 1270

深度解析大众点评反爬机制:构建高可用店铺评论采集系统(2026最新实战)

在中文互联网数据采集领域,大众点评(现归属美团)始终占据着特殊地位。其丰富的UGC(用户生成内容)包含了超过2亿条真实店铺评论、数百万家商户的详细POI信息以及用户行为数据,对商业分析、口碑监测、本地生活趋势研究具有不可替代的价值。然而,大众点评的安全团队投入了顶级资源构建反爬系统——从请求签名、行为验证到设备指纹,其防御强度甚至超过多数电商平台。本文将完整呈现一套2026年依然有效的技术方案,包括破解核心参数_token、动态代理池维护、无头浏览器指纹伪装等,最终产出一个生产级采集框架。目录。

2201_76125261的博客 814

Skywalking分布式追踪与监控

官网地址:Apache SkyWalking APM全称Application Performance Management应用性能管理,目的是通过各种探针采集数据,收集关键指标,同时搭配数据呈现以实现对应用程序性能管理和故障管理的系统化解决方案。 Zabbix、Premetheus、open-falcon等监控系统主要关注服务器硬件指标与系统服务运行状态等,而APM系统则更重视程序内部执行过程指标和服务之间链路调用情况的监控,APM更有利于深入代码找到请求响应“慢”的根本问题,与Zabbix之类的监控

meser88的博客 1357

【离线OCR】微信离线实现图片OCR文本和表格识别

基于微信本地OCR引擎(由最新版微信自动安装)。通过Python对其官方调用逻辑进行完整翻译和封装,使开发者可以用简单的API调用其强大的OCR功能。

专注于医院数据分析技术与系统开发的创作与分享。 2625

ue 蓝图 c++ websocket 事件回调

ue 蓝图 c++ websocket 事件回调

jacke121的专栏 166

【运维】SkyWalking链路监控(追踪)

skywalking支持dubbo,SpringCloud,SpringBoot集成,代码无侵入,通信方式采用GRPC,性能较好,实现方式是java探针,支持告警,支持JVM监控,支持全局调用统计等等,功能较完善。 分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。 提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。

欢迎指错||纠正||建议||水评+点赞&&评论&&关注&&转发 3247

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: java以SSL方式连ES
下一篇: 基于Skywalking开发分布式监控(三)
zhyuli
博客等级 码龄10年 326粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhyuli

您的鼓励是对我付出努力一种赞赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值