Skywalking的重要功能详解

news2024/11/22 17:45:14
学习本篇文章之前首先要了解一下Sky walking的基础知识

分布式链路追踪工具Sky walking详解

一,Sky walking监控数据库

在admin服务中,连接数据库查询user表中所有数据
引入依赖

		<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

编写userList接口

	@GetMapping("/userList")
    public List<User> userList() {
        return userService.userList();
    }

UserServiceImpl类

	@Override
    public List<User> userList() {
        return this.list();
    }

user表中模拟一百万数据【使用MySQL存储过程】

CREATE PROCEDURE bachInsert2354()
BEGIN
DECLARE n INT DEFAULT 0;
START TRANSACTION;
WHILE n < 1000000 DO
	INSERT INTO `user` VALUES(NULL,'dddd','333333');
	SET n := n + 1;
	END WHILE;
	COMMIT;
END;

CALL bachInsert2354();

访问http://localhost:8086/userList
在这里插入图片描述
查看Sky walkingUI界面
在这里插入图片描述
拓扑图
在这里插入图片描述
链路追踪
在这里插入图片描述
查看数据库监控页面
在这里插入图片描述
在这里插入图片描述
Slow Statements (ms)是慢查询SQL

二,Sky walking配置服务的启动日志

将服务的启动日志上传到Sky walking
Spring boot集成log4j2
将Spring boot默认的Logback日志框架移除

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions><!-- 去掉springboot默认配置 -->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

引入log4j2日志依赖

		<dependency> <!-- 引入log4j2依赖 -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

引入Sky walking日志工具包依赖

        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-log4j-2.x</artifactId>
            <version>8.9.0</version>
        </dependency>

配置log4j2.xml文件【在resource目录下】

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="WARN" monitorInterval="30">
    <!--先定义所有的appender-->
    <appenders>
        <!-- skywalking输出器 -->
        <GRPCLogClientAppender name="SkywalkingLog">
            <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </GRPCLogClientAppender>
    </appenders>
    <loggers>
        <root level="INFO">
            <appender-ref ref="SkywalkingLog"/>
        </root>
    </loggers>
</configuration>

查看UI界面
在这里插入图片描述

三,配置告警

Sky walking并没有直接配置告警功能,而是将需要告警的指标配置到配置文件中,配置webhook【网络钩子】,通过自定义通知接口,然后在实现告警通知,告警规则定义在服务端的config/alarm-settings.yml文件中 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/746b285f63214b31a4af579ca03953fd.png)
#配置告警规则
rule:
  #服务自带的告警规则
  ...
  #自定义告警规则
  #规则名称,必须全局唯一,并且以"_rule"结尾
  xxxxxx_rule:
    #告警的指标名称,具体值可以参考下图
    metrics-name: endpoint_sla
    #[可选] 指定告警的服务
    include-names:
      - serviceA
      - serviceB
    #[可选] 排除的服务将不触发告警  
    exclude-names:
      - serviceC
    #[可选] 匹配微服务的名称, 通过正则表达式  
    include-names-regex: instance\_\d+
    #阈值,对于不同的指标类型,可以设置不用类型的值,目前支持long, double or int  
    threshold: 9000  
    #操作符
    op: "<"
    #时间窗口长度,单位时间内,指标异常就会触发告警 (单位是分钟)
    period: 2
    #累计数量,指标符合告警条件达到累计数量后,才会触发告警
    count: 3
    #静默时间,当发生告警后,多长时间不再告警,默认和period值保持一致
    silence-period: 10
    #告警内容,触发告警时,显示的消息内容 {name} 表示告警的服务名称
    message: Successful rate of service {name} is lower than 90% in 2 minutes of last 10 minutes

配置webhook
在这里插入图片描述
告警规则使用原来的实例即可
编写notify接口

    @PostMapping("/notify")
    public void alertNotify(@RequestBody List<AlertMessage> alertMessages) {
        System.out.println("alert");
        System.out.println(alertMessages);
        for (AlertMessage alertMessage : alertMessages) {
            System.out.println(alertMessage);
        }

    }

再次访问 http://localhost:8086/userList
触发notify接口
在这里插入图片描述
配置钉钉告警机器人

dingtalkHooks:
  textTemplate: |-
    {
      "msgtype": "text",
      "text": {
        "content": "Apache SkyWalking Alarm: \n %s."
      }
    }    
  webhooks:
    - url: 回调地址如【https://oapi.dingtalk.com/robot/send?access_token=dummy_token】
      secret: 机器人密钥【dummysecret】

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

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

相关文章

分享几个.NET开源的AI和LLM相关项目框架

前言 现如今人工智能&#xff08;AI&#xff09;技术的发展可谓是如火如荼&#xff0c;它们在各个领域都展现出了巨大的潜力和影响力。今天大姚给大家分享4个.NET开源的AI和LLM相关的项目框架&#xff0c;希望能为大家提供一些参考。如果你有更好的推荐&#xff0c;欢迎RP投稿或…

YOLOv5入门(四)训练自己的目标检测模型

前言 通过前面几篇文章&#xff0c;已经完成数据集制作和环境配置&#xff08;服务器&#xff09;&#xff0c;接下来将继续实践如何开始训练自己数据集~ 往期回顾 YOLOv5入门&#xff08;一&#xff09;利用Labelimg标注自己数据集 YOLOv5入门&#xff08;二&#xff09;处…

Oceanbase all-in-one单机版部署,通过MySQL客户端连接OB租户,DBEAVER 客户端连接MySQL租户。

一.Oceanbase all-in-one单机版部署 1.修改资源限制。 vim /etc/security/limits.conf root soft nofile 655350 root hard nofile 655350 * soft nofile 655350 * hard nofile 655350 * soft stack unlimited * hard stack unlimited * soft nproc 655360 * hard nproc 6553…

webstorm 常用插件

安装插件步骤&#xff1a; 打开软件&#xff0c;文件 -- 设置-- 插件 -- 输入插件名称 -- 安装 代码截图: code screenShots 先选中代码&#xff0c;按 ctrl shift alt a&#xff0c;就可截取选中的代码颜色注释: comments highlighter 对注释的文字改变颜色高亮成对符号: h…

RK3568 学习笔记 : 精简 u-boot env 默认复杂的多种引导启动设置

前言 环境&#xff1a; 正点原子 Atompi-CA1 RK3568 开发板、正点原子 DLRK3568 开发板&#xff0c;&#xff08;一时脑热买了两块 RK3568 开发板&#xff09;&#xff0c;Atompi-CA1 RK3568 开发板比较小巧&#xff0c;利于一些前期的嵌入式 Linux 开发学习与实践。 RK3568 开…

分享5款PDF编辑软件

PDF编辑不易&#xff0c;有需要的朋友可以试试这5款专业软件&#xff0c;每一个都能直接在PDF文件上编辑&#xff0c;不同的软件对PDF可编辑的范围不同&#xff0c;大家可以按需求选用。 1.edge浏览器 Edge浏览器不仅是浏览网页的得力助手&#xff0c;还悄然成为了轻量级PDF管…

【强训笔记】day11

NO.1 思路&#xff1a;枚举&#xff0c;设一号大礼包的数量为x&#xff0c;二号大礼包的数量为y&#xff0c;用循环枚举一号大礼包的个数得到二号大礼包的数量&#xff0c;使得某一时刻axby的值最大。 代码实现&#xff1a; #include<iostream>using namespace std;lo…

财务世界中数据叙事对于企业决策的影响力

数据叙事是财务规划与分析中一项能够改变企业管理规则、体现数据差异化的技能。它使得财务专业人士能够在企业高层的决策桌上获得一席之地。财务团队可以利用这项出色且无与伦比的技能将数据转化为可操作的业务建议。在当今这个数字化时代&#xff0c;任何值得分享的见解都可以…

在.NET架构的Winform项目中引入“异步编程”思想和技术

在.NET架构的Winform项目中引入“异步编程”思想和技术 一、异步编程引入&#xff08;1&#xff09;异步编程引入背景&#xff08;2&#xff09;异步编程程序控制流图&#xff08;3&#xff09;异步编程前置知识&#xff1a; 二、异步编程demo步骤1&#xff1a;步骤2&#xff1…

『FPGA通信接口』DDR(4)DDR3内存条SODIMMs读写测试

文章目录 前言1.MIG IP核配置2.测试程序3.DDR应用4.传送门 前言 不论是DDR3颗粒还是DDR3内存条&#xff0c;xilinx都是通过MIG IP核实现FPGA与DDR的读写。本文区别于DDR颗粒&#xff0c;记录几个与颗粒配置不同的地方。关于DDR的原理与MIG IP的简介&#xff0c;请查看前面文章&…

商务分析方法与工具(三):Python的趣味快捷-循环控制结构解决随机摇奖

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

Debian 12 Bookworm Linux安装 NVIDIA驱动程序

运行带有 Nvidia 显卡的 Debian 12 Linux 台式机或笔记本电脑的用户将需要 Nvidia 驱动程序才能利用显卡的强大功能来执行游戏、3D 渲染、视频编辑和其他图形密集型任务。 因此&#xff0c;如果你不知道如何在 Debian Linux 上安装 NVIDIA GPU 驱动程序&#xff0c;请按照本教…

从零开始学习生成树实验:一步一步走向精通

大家好&#xff0c;这里是G-LAB IT实验室。 ⭕5月18日 CCNAHCIA 新开班来啦&#x1f44f; 现在报名有早鸟价&#xff0c;感兴趣的可咨询 &#x1f447;&#x1f447;&#x1f447; 敲重点! 可小窗客服咨询课程价格 本课程包含线下面授、线上直播、录播、实验、考试习题、…

AI技术赋能下的视频监控方案是如何解决新能源汽车充电难问题的?

一、方案背景 刚刚结束的第十八届北京车展异常火爆&#xff0c;其中一组与汽车有关的数字让人格外关注。根据乘联会2024年4月19日公布的最新数据&#xff0c;全国乘用车市场零售达到51.6万辆&#xff0c;其中新能源车的销量约为26万辆&#xff0c;市场渗透率达到50.39%。 这意味…

java-Spring-Lombok-讲解-(一文一言)创伤是成熟的途径

高手都在孤独前进-致敬我们不悔的青春 我打算每篇文章下找一下文言警句-说不那天会用上&#x1f601;&#x1f601;&#x1f601;&#x1f601; 每篇一言 创伤是成熟的途径 希望经历过创伤的人,能更好享受当下, 爱自己胜过爱别人呀 目录 &#x1f3bb;Lombok简介 &#…

【NodeMCU实时天气时钟温湿度项目 1】连接点亮SPI-TFT屏幕和UI布局设计

前言 从今天开始&#xff0c;我们详解介绍制作实时天气时钟项目的方法步骤&#xff0c;主要分以下几个专题分别进行&#xff1a;&#xff08;1&#xff09;连接点亮SPI-TFT屏幕和UI布局设计&#xff1b;&#xff08;2&#xff09;NodeMCU的WIFI模式设置及连接&#xff1b;&…

线上线下包搭建小程序/公众号/H5 支持二开!

网上交友有以下三个积极影响&#xff1a; 1. 扩展社交圈和增加社交机会&#xff1a;网上交友可以让人们接触到不同地区、不同背景、不同文化的人&#xff0c;拓展人们的社交圈并且增加交友机会。这些新的社交联系对于个人的成长和发展有积极的影响&#xff0c;可以让人们学习新…

武汉理工大学python123实验——流程控制结构

1.百分制成绩转换五分制#1707 n int(input())if n>90:print(A) elif n>80:print(B) elif n>70:print(C) elif n>60:print(D) else:print(E) 2.角古猜想#73963 n eval(input()) if n<0:print(ERROR) elif . in str(n):print(ERROR) else:print(n,end" …

excel公式后面加的““是什么意思呢?

这个大体上有两种用意。 1.将数值转换成文本 VLOOKUP(F2,A:C,3,0) 举个使用VLOOKUP函数的场景&#xff0c;如下图所示&#xff0c;员工信息表A:C区域中&#xff0c;A列员工号是文本型数字&#xff0c;使用VLOOKUP函数查询找的时候&#xff0c;F列的员工号数值型、文本型都有…

虚幻引擎5 Gameplay框架(二)

Gameplay重要类及重要功能使用方法&#xff08;一&#xff09; 配置LOG类及PlayerController的网络机制 探索验证GamePlay重要函数、类的执行顺序与含义 我们定义自己的日志&#xff0c;专门建立一个存放自己日志的类&#xff0c;这个类继承自BlueprintFunctionLibrary 然后…