Spring Cloud【SkyWalking日志、SkyWalking告警 、Skywalking自定义告警规则】(十五)

news2024/12/22 22:40:34

 

目录

分布式请求链路追踪_SkyWalking日志

分布式请求链路追踪_SkyWalking告警 

分布式请求链路追踪_Skywalking自定义告警规则


 

分布式请求链路追踪_SkyWalking日志

POM中引入相关依赖 

Skywalking8.4.0版本开始才支持收集日志功能,同时pom需引用以下依赖。

<dependency>
   <groupId>org.apache.skywalking</groupId>
   <artifactId>apm-toolkit-logback-1.x</artifactId>
   <version>8.5.0</version>
</dependency>

 Logback配置

在logback.xml中加入配置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
       <!-- 日志输出编码 -->
       <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
           <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
               <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level logger_name:%logger{36} -[%tid] - message:%msg%n</pattern>
           </layout>
       </encoder>
   </appender>
   <root level="info">
       <appender-ref ref="console"/>
   </root>
</configuration>

Skywalking通过gRPC上报日志

gRPC报告程序可以将收集到的日志发送给Skywalking OAP服务器上。

创建logback.xml文件中添加

<appender name="log"
class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
        <!-- 日志输出编码 -->
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level logger_name:%logger{36} -
[%tid] - message:%msg%n</pattern>
            </layout>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="log"/>
    </root>

打开你的agent/config/agent.config配置文件,添加如下配置信息, 注意skywalking的log通信用的grpc:

# 指定要向其报告日志数据的grpc服务器的主机
plugin.toolkit.log.grpc.reporter.server_host
=${SW_GRPC_LOG_SERVER_HOST:192.168.66.101}

# 指定要向其报告日志数据的grpc服务器的端口
plugin.toolkit.log.grpc.reporter.server_port
=${SW_GRPC_LOG_SERVER_PORT:11800}

# 指定grpc客户端要报告的日志数据的最大大小
plugin.toolkit.log.grpc.reporter.max_message
_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760}

# 客户端向上游发送数据时将超时多长时间。单位是秒
plugin.toolkit.log.grpc.reporter.upstream_ti
meout=${SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30
}

 注意:

注:gRPC报告程序可以将收集到的日志转发到SkyWalking OAP服务器或SkyWalking Satellite卫星。

测试 

分布式请求链路追踪_SkyWalking告警 

告警基本流程 

每隔一段时间轮询Skywalking-collector收集到的链路追踪的数据, 再根据所配置的告警规则(如服务响应时间、服务响应时间百分 比)等,如果达到阈值则发送响应的告警信息。发送告警信息是以 线程池异步的方式调用webhook接口完成,从而开发者可以在指定的webhook接口中自行编写各种告警方式,钉钉告警、邮件告警等 等。

 Skywalking默认支持7中通知:

web、grpc、微信、钉钉、飞书、华为weLink、slack

默认规则 

Skywalking默认提供的 alarm-settings.yml ,定义的告警规则如下:

1、过去3分钟内服务平均响应时间超过1秒

2、服务成功率在过去2分钟内低于80%

3、服务90%响应时间在过去3分钟内高于1000毫秒

4、服务实例在过去2分钟内的平均响应时间超过1秒

5、端点平均响应时间过去2分钟超过1秒 

告警规则 

1、endpoint_percent_rule:规则名称,将会在告警消息体中展示,必须唯一,且以 _rule 结尾

2、metrics-name:度量名称

3、include-names:将此规则作用于匹配的实体名称上,实体名称可以是服务名称或端点名称等

4、exclude-names:将此规则作用于不匹配的实体名称上,实体名称可以是服务名称或端点名称等

5、threshold:阈值 op:操作符,目前支持 >、<、=

6、period:多久检测一次告警规则,即检测规则是否满足的时间窗口,与后端开发环境匹配

7、count:在一个period窗口中,如果实际值超过该数值将触发告警

8、silence-period:触发告警后,在silence-period这个时间窗口中不告警,该值默认和- -- --- 9、period相同。例如,在时间T这个瞬间触发了某告警,那么在(T+10)这个时间段,不会再次触发相 同告警。

10、message:告警消息体,{name} 会解析成规则名称

注意: 这些预定义的告警规则,打开config/alarm-settings.yml文件即可看到。 

Webhook 

Webhook表达的意思是,当告警发生时,将会请求的地址URL(用 POST方法)。警报消息将会以 application/json 格式发送出去。

举个栗子: 比如你的好友发了一条朋友圈,后端将这条消息推送给所有其他好友的客户端,就是 Webhook 的典型场景。 

[{
  "scopeId": 1,
  "scope": "SERVICE",
  "name": "serviceA",
  "id0": 12,  
  "id1": 0,  
  "ruleName": "service_resp_time_rule",
  "alarmMessage": "alarmMessage xxxx",
  "startTime": 1560524171000
}]

 参数:

1、scopeId、scope:作用域 name:目标作用域下的实体名称;

2、id0:作用域下实体的ID,与名称匹配;

3、id1:暂不使用;

4、ruleName: alarm-settings.yml 中配置的规则名称;

5、alarmMessage:告警消息体;

6、startTime:告警时间(毫秒),时间戳形式。

实时效果反馈

1.下列不属于Skywalking告警通知的是____。

A 钉钉

B 邮件

C 微信

D 抖音 

2.Skywalking发送告警的基本原理是每隔一段时间 _____Skywalking-collector收集到的链路追踪的数据。

A 轮询

B 定时

C 记录

D 以上都是错误

分布式请求链路追踪_Skywalking自定义告警规则

默认规则

1、过去3分钟内服务平均响应时间超过1秒

2、服务成功率在过去2分钟内低于80%

3、服务90%响应时间在过去3分钟内高于1000毫秒

4、服务实例在过去2分钟内的平均响应时间超过1秒

5、端点平均响应时间过去2分钟超过1秒 

 自定义告警规则

service_response_time_rule:
 #指定的规则
 metrics-name: service_resp_time
 op: ">"
 # 阈值
 threshold: 1 # 单位毫秒
 # 多久检查一次当前的指标数据是否符合告警规则
 period: 5
 # 达到多少次告警后,发送告警消息
 count: 1
 # 告警消息内容
 message: 服务{name}最近5分钟以内响应时间超过了1ms

测试

实时效果反馈

1.自定义Skywalking告警规则该count参数含义是____。

A 告警阈值

B 多久检查一次当前的指标数据是否符合告警规则

C 告警消息内容

D 达到多少次告警后,发送告警消息 

2.自定义Skywalking告警规则该threshold参数含义是____。

A 告警阈值

B 多久检查一次当前的指标数据是否符合告警规则

C 告警消息内容

D 达到多少次告警后,发送告警消息

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

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

相关文章

如何理解教育数字化转型?

一、教育数字化转型 教育数字化转型是指将传统的教育方式和教学方法通过应用数字技术进行改进和创新&#xff0c;实现教育过程的数字化、网络化、智能化。它包括利用数字技术改变教育内容的呈现方式、改变组织方式、改变评估和反馈方式。 教育数字化的目的是为了提高教育的效率…

KubeVela篇06:Kubevela Addon插件安装原理

addon支持从本地、git仓库、helm chart仓库安装,最终原理都相同,因此我们以本地安装为例。 完整流程如下: 从指定目录读取一个完整的addon安装包。 根据metadata.yaml配置文件,校验插件要求的kubevela、k8s的版本,不满足版本要求则终止安装。 根据metadata.yaml配置文件…

MS VC 2022开发Linux应用记录之02篇-开发调试Linux QT应用

MS VC 2022开发Linux应用记录之02篇 1. 安装QT5 apt-get update apt-get install build-essential apt-get install qtcreator apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools apt-get install qtcreator apt-get install qt5* apt-get install li…

LeetCode 热题 100(三):普通数组。53. 最大子数组和、 56. 合并区间、189. 轮转数组、238. 除自身以外数组的乘积

一、题目一&#xff1a; 53. 最大子数组和 题目要求&#xff1a; 思路&#xff1a;贪心算法。 求每个区间的和。 局部最优&#xff1a;当前“连续和”为负数的时候立刻放弃&#xff0c;从下一个元素重新计算“连续和”&#xff0c;因为负数加上下一个元素 “连续和”只会越…

硬件系统工程师宝典(33)-----EEPROM电路如何设计?

各位同学大家好&#xff0c;欢迎继续做客电子工程学习圈&#xff0c;今天我们继续来讲这本书&#xff0c;硬件系统工程师宝典。 上篇我们了解了嵌入式应用中应用领域不同&#xff0c;所采用的CPU也不同&#xff0c;不过CPU部分电路的设计过程都较为相似。并且&#xff0c;我们…

抖音seo源码开发技术解析

抖音seo矩阵系统源码开发部署基于PHP语言&#xff0c;结合视频剪辑基础框架逻辑&#xff0c; 一、 抖音SEO源码开发技术解析主要包括以下内容&#xff1a; 抖音SEO的概念&#xff1a;简单介绍抖音SEO的概念、作用和流程。 SEO优化技巧&#xff1a;详细讲解SEO优化的技巧&…

C++ - list介绍 和 list的模拟实现

list介绍 list 是一个支持在常数范围内&#xff0c;任意位置进行插入删除的序列式容器&#xff0c;且这个容器可以前后双向迭代。我们可以把 list 理解为 双向循环链表的结构。 于其他结构的容器相比&#xff0c;list在 任意位置进行插入和函数的效率要高很多&#xff1b;而li…

JavaScript:Promise 组合器

如果可以实现记得点赞分享&#xff0c;谢谢老铁&#xff5e; Promise在 JavaScript 中并不是一个新概念。它们是表示异步操作的最终完成或失败及其结果值的对象。 Promise 有三种可能的状态&#xff1a;pending – 初始状态&#xff08;仍在等待&#xff09;、已完成– Promis…

[NLP]使用Alpaca-Lora基于llama模型进行微调教程

Stanford Alpaca 是在 LLaMA 整个模型上微调&#xff0c;即对预训练模型中的所有参数都进行微调&#xff08;full fine-tuning&#xff09;。但该方法对于硬件成本要求仍然偏高且训练低效。 [NLP]理解大型语言模型高效微调(PEFT) 因此&#xff0c; Alpaca-Lora 则是利用 Lora…

Qt6 Qt Quick UI原型学习QML第七篇

文章目录 效果演示QML语法 ClickableImageV2.qmlQML语法 EasingCurves.qml时钟小球滚动QML 源码## 时钟小球滚动QML解释 语法解释参考动画片动画元素应用动画可点击图像V2上升的物体第一个对象第二个对象第三个对象缓和曲线分组动画并行动画连续动画嵌套动画 效果演示 QML语法 …

给APK签名—两种方式(flutter android 安装包)

前提&#xff1a;给未签名的apk签名&#xff0c;可以先检查下apk有没有签名 通过命令行查看&#xff1a;打开终端或命令行界面&#xff0c;导入包含APK文件的目录&#xff0c;并执行以下命令&#xff1a; keytool -printcert -jarfile your_app.apk 将 your_app.apk替换为要检查…

MybatisPlus查询条件为空字符串或null问题及解决

参考&#xff1a;https://www.yii666.com/blog/292928.html 解决办法 mybatisplus的条件构造器方法 eq()、like()等这些方法能支持第三个参数 condition condition是一个布尔值&#xff0c;当condition为false 时&#xff0c;当前这个条件方法不会生效&#xff0c;即生成的s…

曲线拟合曲面拟合(MATLAB拟合工具箱)位置前馈量计算(压力闭环控制应用)

利用PLC进行压力闭环控制的项目背景介绍请查看下面文章链接,这里不再赘述。 信捷PLC压力闭环控制应用(C语言完整PD、PID源代码)_RXXW_Dor的博客-CSDN博客闭环控制的系列文章,可以查看PID专栏的的系列文章,链接如下:张力控制之速度闭环(速度前馈量计算)_RXXW_Dor的博客-CSD…

flash attention 2论文学习

flash attention作者Tri Dao发布了flash attention 2&#xff0c;性能为flash attention的2倍。 优化点主要如下&#xff1a; 一、减少 non-matmul FLOPs A00中由于tensor core的存在&#xff0c;使得gpu对于浮点矩阵运算吞吐很高&#xff0c;如FP16/BF16可以达到312 TFLOPs/…

【弹力设计篇】聊聊熔断设计

为什么需要熔断 熔断这个词一听从生活中就是保险丝超过一定的温度后自动断开&#xff0c;以此来保护家用电器&#xff0c;属于电路中自我保护装置。如果没有熔断&#xff0c;那么家用电器一定会损坏的。 进一步再来分析一下&#xff0c;在分布式系统中&#xff0c;各个系统之间…

建立TCP连接的各个系统调用

TCP 连接的过程图 服务器 socket() 函数 socket() 返回的 sockfd 是一个描述符。socket()对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字&#xff0c;而socket()用于创建一个socket描述符&#xff08;socket descriptor&#xff09;&#xff0c;它唯一标识…

PX4仿真jMAVSim没有界面

切换java版本,使用java-8 sudo update-alternatives --config java删除旧文件 rm -rf Tools/jMAVSim/out编辑accessibility.properties 文件&#xff1a; sudo gedit /etc/java-8-openjdk/accessibility.properties注释掉下面这行 #assistive_technologiesorg.GNOME.Acessi…

笔试题:统计字符串中某字符串在其出现的字符个数

笔试题&#xff1a;统计字符串中某一子串的字符个数&#xff1a;例如字符串aabbcd,有aabb:4,ab:2 哈哈&#xff0c;这道题是小编面试音视频龙头企业的笔试题&#xff0c;以下是我写的代码&#xff1a;如果有错误&#xff0c;希望可以指正!!! 解题思路&#xff1a;利用双指针i和…

一刷总结篇

也养成了记录博客的好习惯吧&#xff0c;不过一刷有时也偷懒没跟上&#xff0c;但总体而言是比没刷代码随想录之前的状态要好。还是要记得当前目标是什么&#xff08;深抓主要矛盾&#xff09;。二刷代码随想录时每题要充分思考并且刷之前放过的题&#xff08;如扩展提等&#…

单相导轨电表支持双路双控吗?

单相导轨电表是一种电子式电能表&#xff0c;它采用导轨式安装结构&#xff0c;体积小、安装方便&#xff0c;适用于城市、农村或工厂企业的单相电能计量和集中式安装。单相导轨电表可以支持双路双控&#xff0c;也就是可以同时测量两个电路的电能消耗并进行控制。 双路双控是指…