SkyWalking 自定义Span并接入告警

news2024/11/23 10:13:49

图容易被CSDN吞掉,我在掘金也发了:https://juejin.cn/post/7361821913398837248

我就是这么膨胀

最近在做 OpenAI API 套壳,当我使用 okhttp-sse 这个库进行流式内容转发的时候,我发现有些回调方法 SkyWalking 不能抓取到。这就出问题了。SLA 天天100%,整得我都不好意思说出来我的服务SLA比阿里、腾讯这些公司还牛X。

image.png

搞得我挺膨胀的,有一天有一个不知名的测试小伙子来和我说怎么回答没出来的时候,我是怀疑的。直接就给他来了一个三连:

  • 你会用吗?
  • 你网络行不行?
  • 哥,先别报老板,我看看。

我打开 SkyWalking 看到 SLA 100%,这时候我又膨胀了:

  • 你真的会用吗?
  • 你网络真的行吗?
  • 哥,你咋报群里给老板看了,我马上查还不行吗?

还好服务有日志,我一查果然芭比Q了。okhttp-sse 回调的时候报错了,但这个时候 SkyWalking 还显示 HTTP Status: 200。但是日志确实有报错,回答也确实没有。

有错就要认,挨打要立正

这不,测试小哥告老板去了。我们再不解决掉问题估计明天会因为左脚先进入公司而提取假期。解决问题的第一步,应该先弄清楚问题出在哪里?你面无表情的话语不剩多少意义,就当我求求你,给我一些说明。

image.png

来简单梳理一下 SSE 的工作流程:

没有 OpenAI 的时候是这样的
image.png

有了 OpenAI 之后是这样的

image.png

问题大概知道了,当连接建立的时候,服务端就返回了 200。那 SkyWalking 也无能为力呀。

image.png

服务端:服务真的报错的,你就探测 HTTP Status 是 200 了不起啊?

SkyWalking:按规范办事就是了不起。 OAI/OpenAPI-Specification: The OpenAPI Specification Repository (github.com)

image.png

自定义 Span

涉及到自定义的问题,不要犹豫一把梭这个库就行了。

the toolkit, such as using maven or gradle | Apache SkyWalking

注意:依赖版本和你使用的 java-agent 版本保持一致

<dependency>
  <groupId>org.apache.skywalking</groupId>
  <artifactId>apm-toolkit-trace</artifactId>
  <version>${skywalking.version}</version>
</dependency>

导入依赖之后,就创建一个Span,有多种方式可以创建:

  • @Trace(operationName = "{name}")
  • ActiveSpan.setOperationName("{name}")

设置完 OperationName 之后,保险起见应该在 SkyWalking UI 查一下这个 span 在不在?
如果你真的去看就会发现真的有这个Span,我就不截图了,放张表情包凑合一下。

image.png

接入告警

自定义 Span 之后是能在链路追踪里看到了,但是怎么加告警呢?别急,看我操作。

image.png

还是不看我操作了,看吴晟大佬操作吧。

Can skywalking display the metrics(such as resp_time or cpm)of a logic endpoint, in the service dashboard (not endpoint dashboard)? · apache/skywalking · Discussion #10864 (github.com)

The Logic Endpoint | Apache SkyWalking

总结一下就是,加个 tag

  • @Tag(value = "x-le", key = "{\"logic-span\":true}")
  • ActiveSpan.tag("x-le", "{\"logic-span\":true}")

加完 tag 之后这个 Span 就是一个有证的 Endpoint 了,它可以在SkyWalking UI 中查询到。也能使用 OAL 表达式里面指标来进行告警操作。

贴个示例:

reaction_stream_failure_rule:
    expression: sum((endpoint_sla / 100) < 100) >= 1
    period: 3
    silence-period: 1
    include-names:
      - 'Reaction/stream in fake-service'
    message: 'SSE回答异常'

我还写过一篇告警配置的文章,来宠幸一下她吧:https://juejin.cn/post/7344567669893021736

Ref

the toolkit, such as using maven or gradle | Apache SkyWalking

The Logic Endpoint | Apache SkyWalking

Can skywalking display the metrics(such as resp_time or cpm)of a logic endpoint, in the service dashboard (not endpoint dashboard)? · apache/skywalking · Discussion #10864 (github.com)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java---数据类型与变量

1.字面常量 字面常量就是我们经常所说的常量&#xff0c;常量即在程序运行期间&#xff0c;固定不变的量。且常量是无法改变的&#xff0c;如果我们的代码有改变常量的操作&#xff0c;程序就会报错。 1.1字面常量的分类 字符串常量&#xff0c;整型常量&#xff0c;浮点数常…

Windows命令行基本命令

目录 什么是相对路径和绝对路径&#xff1f; 一、目录&#xff08;文件夹&#xff09;和文件操作 1.cd命令 用于切换目录 2.dir命令 用于显示目录和文件列表 3.md或mkdir命令 创建文件&#xff0c;也可以创建多级子目录 4.rd命令 用于删除目录 5.move命令 用于移动…

C++|STL-list运用(1)

cplusplus.com/reference/list/list/?kwlist list介绍 list是一个双向循环链表&#xff0c;双向循环链表它的每个节点都有两个链接&#xff0c;一个指向前一个节点&#xff0c;另一个指向下一个节点&#xff0c;且最后一个结点指向头节点。 结点组成 1.数据域 2.指针域 &a…

基于SpringBoot+Vue高校宣讲会管理系统设计与实现

项目介绍&#xff1a; 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装高校宣讲会管理系统软件来发挥其高效地信息…

请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依 次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。 题干 请编…

2024年五大企业邮箱最新排名:价格与服务全面对比

在选择企业邮箱时&#xff0c;我们都需要对比企业邮箱价格和邮箱服务。国内五大企业邮箱有Zoho Mail、新浪、网易、腾讯、阿里&#xff0c;这些企业邮箱功能各有偏重点&#xff0c;价格也不一&#xff0c;到底排名如何&#xff1f;我们今天来进行个价格和服务的全面对比。 一、…

家政行业赋能链动:商业模式创新开启全新篇章

大家好&#xff0c;我是微三云周丽&#xff01; 在当今娱乐行业蓬勃发展的背景下&#xff0c;越来越多的年轻人对卫生打理的需求逐渐增加&#xff0c;同时也催生了家政行业的兴起。 然而&#xff0c;如何在激烈的竞争中脱颖而出&#xff0c;成为家政行业面临的重要挑战。本文…

【智能算法】火烈鸟搜索算法(FSA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年&#xff0c;W Zhiheng等人受到火烈鸟迁徙觅食行为启发&#xff0c;提出了火烈鸟搜索算法&#xff08;Flamingo Search Algorithm, FSA&#xff09;。 2.算法原理 2.1算法思想 FSA受到火烈鸟…

【unity】三维数学应用(计算线和面的交点)

【unity】三维数学应用&#xff08;计算线和面的交点&#xff09; 实现方法有多种&#xff0c;下面介绍一种简单的方法。利用一个点指向面上任意点的向量&#xff0c;到该面法线的投影长度相同的基本原理&#xff0c;结合相似三角形既可以求出交点。 原理 如下图 GD组成的线段…

win11 Windows ADK制作的win pe中没有manage-ade命令或命令无法正常工作解决办法

解决办法 不使用win pe&#xff0c;而是使用Windows安装程序。 将iso镜像烧录到u盘&#xff0c;然后从它引导。 按shift f10弹出cmd&#xff0c;里面存在manage-bde且正常工作。 其他 win pe找不到命令manage-ade 在win pe上使用manage-ade需要一个包 a&#xff0c;adk制作…

计算机网络 备查

OSI 七层模型 七层模型协议各层实现的功能 简要 详细 TCP/IP协议 组成 1.传输层协议 TCP 2.网络层协议 IP 协议数据单元&#xff08;PDU&#xff09;和 封装 数据收发过程 数据发送过程 1. 2.终端用户生成数据 3.数据被分段&#xff0c;并加上TCP头 4.网络层添加IP地址信息…

练习题(2024/4/29)

在深度优先遍历中&#xff1a;有三个顺序&#xff0c;前中后序遍历 这里前中后&#xff0c;其实指的就是中间节点的遍历顺序&#xff0c;只要记住 前中后序指的就是中间节点的位置就可以了。 如图 1二叉树的前序遍历 给你二叉树的根节点 root &#xff0c;返回它节点值的 前…

Vue3+Nuxt3 从0到1搭建官网项目(SEO搜索、中英文切换、图片懒加载)

Vue2Nuxt2 从 0 到1 搭建官网~ 想开发一个官网&#xff0c;并且支持SEO搜索&#xff0c;当然离不开我们的 Nuxt &#xff0c;Nuxt2 我们刚刚可以熟练运用&#xff0c;现在有出现了Nuxt3&#xff0c;那通过本篇文章让我们一起了解一下。 安装 Nuxt3 // npx nuxilatest init &…

乐观锁悲观锁

视频&#xff1a;什么是乐观锁&#xff1f;什么是悲观锁&#xff1f;_哔哩哔哩_bilibili

Leetcode—2739. 总行驶距离【简单】

2024每日刷题&#xff08;121&#xff09; Leetcode—2739. 总行驶距离 实现代码 class Solution { public:int distanceTraveled(int mainTank, int additionalTank) {int consume 0;int ans 0;while(mainTank ! 0) {mainTank--;consume;if(consume 5 && additio…

数据分析案例-全球表面温度数据可视化与统计分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

基于SpringBoot+Vue高校汉服租赁网站的设计与实现

项目介绍&#xff1a; 高校汉服租赁网站管理系统按照操作主体分为管理员和用户。管理员的功能包括字典管理、交流论坛管理、公告资讯管理、汉服信息管理、汉服收藏管理、汉服评价管理、汉服租赁管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库&#xff0c…

03 后端入参校验:自定义注解实现

03 后端入参校验&#xff1a;自定义注解实现 一、前言二、实现1、新建Spring Boot项目2、引入依赖3、新建注解类4、新建校验器5、全局异常处理器6、编写Controller7、新建实体类8、启动并测试 一、前言 在 Java 后端开发中&#xff0c;为了实现入参校验&#xff0c;常常会使用…

外径合格与否对线缆品质有着直接影响 应用测径仪很重要

关键词&#xff1a;测径仪,线缆测径仪,电缆测径仪,外径测量仪,线缆,电缆 电缆尺寸不合格的危害 1、传输性能下降&#xff1a;尺寸不合格会导致电线电缆的参数不符合设计要求&#xff0c;从而影响传输的速率和稳定性&#xff0c;从而导致数据传输缓慢&#xff0c;影响用户的使用…

PC 自动化测试入门 - pywinauto 上篇:初识

文章目录 前言PC 自动化测试 是什么&#xff1f;常用 PC 自动化测试工具pywinauto 是什么&#xff1f;Windows上支持的可访问性技术列表 操作记事本自动写入问题app Application(backend"uia").start("notepad.exe") 无法正常启动组件选择器和 print_cont…