成都招聘网站制作/自己可以做网站吗
一、skywalking预览
1.1 skywalking 概述
Apache SkyWalking, 适用于分布式系统的应用程序性能监控工具,专为微服务、云原生和基于容器的 (Kubernetes) 架构而设计。官方地址: https://skywalking.apache.org/
- 适用于分布式系统的应用程序性能监控工具,
专为微服务、云原生和容器 (Kubernetes) 的架构而设计
- 多数互联网公司里面用的技术,
分布式架构下链路分析和性能定位最佳方案之一
- 微服务架构下,
链路性能和调用耗时分析
是至关重要环节,Skywalking是必杀技之一- 在多数互联网公司中,
Skywalking占有率很高
,是近几年大量流行
1.2 为什么需要链路追踪?
观察下列链路调用关系,思考一下.
- 服务调用链路出现了问题怎么快速排查?
- 服务调用链路耗时长怎么定位到是哪个服务?
分布式应用架构虽然满足了应用横向扩展的需求,但是运维和诊断的过程变得越来越复杂,例如会遇到接口诊断困难、应用性能诊断复杂、架构分析复杂等难题,传统的监控工具并无法满足,分布式链路系统由此诞生
.
1.3 APM系统
Application Performance Management 【应用程序性能管理】
, 简称APM系统
.APM系统是可以对帮助系统的行为做性能分析的工具.APM系统,它是由谷歌公开的论文提到的
,而到后面,许多的技术公司就基于这边论文的原理,开发出来很多出色的APM框架
,比如:skywalking、zipkin
等等.
skywalking
是一款国产的开源框架,在2015年开源使用,在2017年的时候加入了Apache孵化器.skywalking是分布式应用程序的性能监控工具,
专门是为了微服务(spring cloud)、云原生架构与容器架构(docker/k8s)而设计的.Skywalking
作为APM
工具,它具有分布式追踪、性能指标分析、应用和服务依赖分析等功能.
除了skywalking之外, Zipkin是由Twitter开源的链路分析分析工具
,在springcloud sleuth得到了广泛的使用,具有轻量,部署简单的特点, 在实际开发当中也有着较为广泛的应用. 此次我们主要学习skywalking的基本用法.
二、skywalking环境搭建、配置
2.1 skywalking特点
skywalking具有多种监控手段,可以通过语言探针来获取监控数据
.
- 具有多种语言的自动探针。它包括了Java、net、node等
- 具有轻量有高效的特点,不占用大量的服务器资源
- 清晰的模块化,UI、存储、集群管理都有许多种机制供选择
- 支持告警,具有优秀的可视化解决方案
- 可以在多种环境下运行,例如:像注册中心Eureka和RPC dubbo等
2.2 skywalking整体架构
- 注: 下图来源于官网
整个架构分库四个部分,上下左右,这里考虑到描述更加简单直观,所以舍弃掉了Mtrics
性能指标相关的东西,只关注Tracing
链路相关功能. - 相关概念
skywalking-agent:
主要负责从应用程序中收集链路信息,然后把链路信息发送给skywalking OAP处理
.OAP是指Observability Analysis Platform 即【可观测性分析平台】
skywalking OAP
: 负责接收从skywalking-agent
发送过来的Tracing
数据信息,然后把数据信息给Analysis Core
进行分析,把分析到的数据存储到外部的存储器当中,最后面把数据信息给Query Core
提供查询数据的功能.- skywalking ui:
负责给用户查看链路等信息.
- 上部分 Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给服务器。
- 下部分 SkyWalking OAP :负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。
- 右部分 Storage :Tracing 数据存储。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器。而我们目前采用的是 ES ,主要考虑是 SkyWalking 开发团队自己的生产环境采用 ES 为主。
- 左部分 SkyWalking UI :负责提供控台,查看链路等等。
2.3 组件介绍
- 数据存储,可以使用
h2、mysql、es等
- skywalking-OAP-server, 安装到服务器
- skywalking ui
- skywalking-agent 【由项目引入】
相关操作环境为centos7
,也可以考虑使用虚拟机.
2.4 安装ES7
- centos7
- docker
mkdir -p /mydata/es/config
mkdir -p /mydata/es/data
chmod 777 -R /mydata/es
echo "http.host: 0.0.0.0" >> /mydata/es/config/elasticsearch.ymldocker run -d --name rj_es7 -p 9200:9200 -p 9300:9300 \-e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" \-v /mydata/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \-v /mydata/es/data:/usr/share/elasticsearch/data \-v /mydata/es/plugins:/usr/share/elasticsearch/plugins elasticsearch:7.6.2
参数说明:
-e "discovery.type=single-node" 表示设置为设单节点启动
-e ES_JAVA_OPTS="-Xms128m -Xmx128m" 设置ES的初始内存和最大内存,如果云服务器内存足够大的情况下,可忽略,如果云服务器内存不宽裕,设置一下,防止ES启不来
安装成功之后,可以访问
http://your ip/_cat/nodes?v=true&pretty
2.5 安装skywalking-OAP-server
直接通过docker
安装即可,如下所示:
docker run --name rj_oap --restart always -d -e TZ=Asia/Shanghai -p 12800:12800 -p 11800:11800 --link rj_es7 -e SW_STORAGE=elasticsearch7 -e SW_STORAGE_ES_CLUSTER_NODES=rj_es7:9200 apache/skywalking-oap-server:8.5.0-es7
参数说明
--link <name or id>:alias ,添加到另一个容器的链接,可以添加别名或者不加
--link后面的参数和elasticsearch容器名一致
SW_STORAGE=elasticsearch7 是固定写法,使用es7;
SW_STORAGE_ES_CLUSTER_NODES:rj-es7也可改为es服务器部署的Ip地址,比如ip:9200
- 对于
rj-es7
这个容器名称,如果跟本文不同,则要修改为自己的es的容器名称
2.6 安装skywalking-ui
基于docker
进行安装即可.
docker run -d --name rj_skywalking_ui \
--restart=always \
-e TZ=Asia/Shanghai \
-p 8080:8080 \
--link rj_oap \
-e SW_OAP_ADDRESS=rj_oap:12800 \
apache/skywalking-ui:8.5.0
- 这里需要注意的是容器名称, 必须跟我们安装的oap容器名称匹配上.
安装完成之后,直接访问即可: ip:8080
查看es
全部索引
http://ip:9200/_cat/indices?v=true&pretty
三、skywalking常见概念、性能指标说明
3.1 概念说明
-
服务【service】
- 就是服务,譬如说
商品微服务
- 就是服务,譬如说
-
实例【Instance】
- 就是部署微服务的机器: 192.168.200.112
-
端点【Endpoint】
- 微服务对外提供的接口:
/api/v1/user/list
就是端点
- 微服务对外提供的接口:
3.2 性能指标
-
用户的满意程度【service apdex】
- 全称
Application Performance Index
,最大值就是 1, 是一个不断优化的方向.
- 全称
- 分3个指标,T 值代表着
用户对应用性能满意的响应时间界限或者说是期望值
,假如T是0.5秒【满意】
: 这样的响应时间让用户感到很愉快,响应时间少于 T 秒钟, 即 0.5秒内;【容忍】
: 慢了一点,但还可以接受,继续这一应用过程,响应时间 T~4T 秒,即0.5~2秒内;【失望】
: 太慢了,受不了了,用户决定放弃这个应用,响应时间超过 4T 秒,即大于2秒;
- SLA
- 服务等级协议,全称:
service level agreement
,为保障服务的性能和可用性9
越多代表全年服务可用时间越长服务更可靠,候机时间越短
- 服务等级协议,全称:
1年 = 365天 = 8760小时
99.9 = 8760 * 0.1% = 8760 * 0.001 = 8.76小时
99.99 = 8760 * 0.0001 = 0.876小时 = 0.876 * 60 = 52.6分钟
99.999 = 8760 * 0.00001 = 0.0876小时 = 0.0876 * 60 = 5.26分钟
根据以上的计算来看,只有全年停机5.26分钟,才能达到99.999%
-
CPM
- 全称:
call per minutes
, 是吞吐量【throughput】指标, 每分钟请求调用的次数
- 全称:
-
RT
Response Time 表示请求响应时间
,对于用户来说,响应时间最好不要超过2秒
-
Percent Response
百分位数统计- 表示采集样本中某些值的占比,skywalking 有 “p50、p75、p90、p95、p99” 等一系列值
- 举例说明: “p99:360” 表示 99% 请求的响应时间在360ms以内
四、skywalking rocketbot ui介绍
4.1 skywalking ui控制栏
- 仪表盘:查看被监控服务的运行状态
- 拓扑图:以拓扑图的方式展现服务的关系
- 追踪:以接口的形式查看调用链路
- 性能剖析:对端点进行采样分析,分析性能瓶颈
- 日志:可查看服务日志,包括我们自己打印的日志
- 告警:触发告警的告警列表,包括了服务的失败率,超时等待
4.2 Global
- Services load:服务每分钟请求数
- Slow Services:慢响应服务,单位ms
- Un-Health services(Apdex): Apdex性能指标,1为满分
- Slow Endpoint:慢响应端点,单位是ms
- Global Response Latency:百分比响应延时,不同百分比的延时时间,单位ms
- Global Heatmap:服务响应时间热力分布图,根据时间段内不同响应时间的数量显示颜色深度
4.3 Service
Service Apdex(数字)
:当前服务的性能评分Service Apdex(折线图)
:不同时间的Apdex评分Service Avg Response Times
:平均响应延时,单位是msService Response Time Percentile
:百分比响应延时Successful Rate(数字)
:请求成功率Successful Rate(折线图)
:不同时间的请求成功率Servce Load(数字)
:每分钟请求数Servce Load(折线图)
:不同时间的每分钟请求数Servce Instances Load
:每个服务实例的每分钟请求数
4.4 Instance
- Service instance load:当前实例的每分钟请求数
- Service Instance Successful Rate:当前实例的请求成功率
- Service Instance Latency:当前实例的响应延时
- JVM CPU:JVM占用CPU的百分比
- JVM Memory:JVM内存占用大小,单位M
- JVM GC Time:JVM垃圾回收时间,包含YGC和OGC
- JVM GC Count:JVM垃圾回收次数,包含YGC和OGC
- JVM Thread Count:JVM线程数量
监控CPU、内存等,Promethus是个更好的选择哦.
4.5 EndPoint
Endpoint Load in Current Service:每个端点的每分钟请求数
Slow Endpoints in Current Service:
每个端点的最慢请求时间,单位ms【毫秒】Successful Rate in Current Service
:每个端点的请求成功率Endpoint Load
:当前端点每个时间段的请求数据Endpoint Avg Response Time
:当前端点每个时间段的请求行响应时间Endpoint Response Time Percentile
:当前端点每个时间段的响应时间占比Endpoint Successful Rate
:当前端点每个时间段的请求成功率
4.6 拓扑图
此页面当中,必须得有服务和数据之后才能查看到结果.
4.7 链路追踪
这里先提供数据之后才能展示出相关的结果.
相关文章:

一文上手skywalking【上】
一、skywalking预览 1.1 skywalking 概述 Apache SkyWalking, 适用于分布式系统的应用程序性能监控工具,专为微服务、云原生和基于容器的 (Kubernetes) 架构而设计。官方地址: https://skywalking.apache.org/ 适用于分布式系统的应用程…...

【JavaScript】JQuery基础知识及应用
一、JQuery的导入方法 https://editor.csdn.net/md/?articleId132214798 二、JQuery介绍 JQuery(JQ):JS的一个类库(方法库:包含了大量的、有助于项目开发的属性和方法) 第一代版本1.xx.xx: 1.11.3 兼容所有浏览器的࿰…...

初始爬虫9
1.元素定位后的操作 “find_element“仅仅能够获取元素,不能够直接获取其中的数据,如果需要获取数据需要使用以下方法”。下面列出了两个方法: 获取文本 element.text 通过定位获取的标签对象的 text 属性,获取文本内容 获取属性…...

从细胞到临床:表观组学分析技术在精准医疗中的角色
中国科学院等科研院所的顶尖人才发起,专注于多组学、互作组、生物医学等领域的研究与服务。在Nature等国际知名期刊发表多篇论文,提供实验整体打包、免费SCI论文润色等四大优势服务。在表观组学分析技术方面,提供DAP-seq、ATAC-seq、H3K4me3 …...

带你0到1之QT编程:二十、QT与MySQL喜结连理,构建数据库应用开发
此为QT编程的第二十谈!关注我,带你快速学习QT编程的学习路线! 每一篇的技术点都是很很重要!很重要!很重要!但不冗余! 我们通常采取总-分-总和生活化的讲解方式来阐述一个知识点! …...

梯度下降法及其性能评估
梯度下降法 梯度下降法是一种一阶迭代优化算法,用于寻找函数的局部最小值。在机器学习中,它通常用来最小化损失函数(也称为成本函数或误差函数),以提高模型对数据的拟合程度。梯度下降法的基本思想是沿着目标函数当前…...

906. 超级回文数
1. 题目 906. 超级回文数 2. 解题思路 题目意思很简单,在给定范围中找到所有满足,它本身是回文,且它的平方也是回文的数字个数。 这题需要注意题目给定的范围,后面很有用: 因为回文范围是有限的,那么我…...

代码随想录算法训练营||二叉树
前/中/后序遍历 递归方式 参考文章 题目 思路:其实递归方式的前中后序遍历的方式都差不多,区别是在父节点的遍历时间。 前序代码 class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result new…...

线上报名小程序怎么做
在这个数字化、智能化的时代,信息技术的发展正以前所未有的速度改变着我们的生活。无论是学习、工作还是娱乐,互联网都成为了我们不可或缺的一部分。而在线上报名这一领域,小程序的出现更是为广大用户带来了前所未有的便捷与高效。今天&#…...

【测试岗】手撕代码 - 零钱兑换
322. 零钱兑换 题目描述 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种…...

菱形继承的类对父类的初始化、组合、多态、多态的原理等的介绍
文章目录 前言一、菱形继承的类对父类的初始化二、组合三、 多态1. 构成多态2. 虚函数3. 虚函数的重写4. 虚函数重写的两个例外1. 协变2. 析构函数的重写 5. C11 final 和 override1. final2. override 6. 设计不想被继承的类7. 重载、覆盖(重写)、 隐藏…...

React Native 在 build 的时候如果出现 `babel.config.js` 配置文件的错误
React Native 在 build 的时候如果出现以下错误, 就是 babel.config.js 配置文件的错误. Showing Recent Issues node:internal/process/promises:289triggerUncaughtException(err, true /* fromPromise */);^Error: .plugins[0][1] must be an object, false, or undefineda…...

【Linux】包管理器、vim详解及简单配置
🚀个人主页:小羊 🚀所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言一、包管理器1.1 apt1.2 yum 二、Linux编辑器——vim2.1 vim的三种模式2.2 vim普通模式常用命令2.2.1 移动…...

AVL树实现
1.AVL的概念 1.AVL树属于二叉搜索树的一种,但它不同与普通的二叉搜索树还具有以下的性质: 每一个根的左右子树的高度差的绝对值不超过1。AVL树是通过高度差去控制平衡的,所以又称作为平衡二叉搜索树。 2.AVL树实现我们引入了一个平衡因子的概…...

初始MYSQL数据库(6)—— 事务
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: MYSQL 目录 事务的概念 事务的ACID特性 使用事务 查看支持事务的存储引擎 事务的语法 保存点 自动/手动提交事务 事务的隔离性和…...

0基础学习PyTorch——GPU上训练和推理
大纲 创建设备训练推理总结 在《Windows Subsystem for Linux——支持cuda能力》一文中,我们让开发环境支持cuda能力。现在我们要基于《0基础学习PyTorch——时尚分类(Fashion MNIST)训练和推理》,将代码修改成支持cuda的训练和推…...

这款免费工具让你的电脑焕然一新,专业人士都在用
HiBit Uninstaller 采用单一可执行文件的形式,无需复杂的安装过程,用户可以即刻开始使用。这种便捷性使其成为临时使用或紧急情况下的理想选择。尽管体积小巧,但其功能却异常强大,几乎不会对系统性能造成任何负面影响。 这款工具的一大亮点是其多样化的功能。它不仅能够常规卸…...

Java高级Day52-BasicDAO
138.BasicDao 基本说明: DAO:data access object 数据访问对象 这样的通用类,称为 BasicDao,是专门和数据库交互的,即完成对数据库(表)的crud操作 在BasicDao 基础上,实现一张表对应一个Dao,…...

【OceanBase 诊断调优】—— SQL 诊断宝典
视频 OceanBase 数据库 SQL 诊断和优化:https://www.oceanbase.com/video/5900015OB Cloud 云数据库 SQL 诊断与调优的应用实践:https://www.oceanbase.com/video/9000971SQL 优化:https://www.oceanbase.com/video/9000889阅读和管理SQL执行…...

微服务Redis解析部署使用全流程
目录 1、什么是Redis 2、Redis的作用 3、Redis常用的五种基本类型(重要知识点) 4、安装redis 4.1、查询镜像文件【省略】 4.2、拉取镜像文件 4.3、启动redis并设置密码 4.3.1、修改redis密码【可以不修改】 4.3.2、删除密码【坚决不推荐】 5、S…...

C++之STL—常用排序算法
sort (iterator beg, iterator end, _Pred) // 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置 // beg 开始迭代器 // end 结束迭代器 // _Pred 谓词 random_shuffle(iterator beg, iterator end); // 指定范围内的元素随机调…...

【驱动】地平线X3派:备份与恢复SD卡镜像
1、备份镜像 1.1 安装gparted GParted是硬盘分区软件GNU Parted的GTK+图形界面前端,是GNOME桌面环境的默认分区软件。 GParted可以用于创建、删除、移动分区,调整分区大小,检查、复制分区等操作。可以用于调整分区以安装新操作系统、备份特定分区到另一块硬盘等。 在Ubun…...

【C++报错已解决】std::ios_base::failure
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…...

matlab入门学习(四)多项式、符号函数、数据统计
一、多项式 %多项式(polynomial)%创建 p[1,2,3,4] %系数向量,按x降幂排列,最右边是常数(x的0次幂) f1poly2str(p,x) %系数向量->好看的字符串 f x^3 2 x^2 3 x 4(不能运算的式子…...

leetcode621. 任务调度器
给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表,用字母 A 到 Z 表示,以及一个冷却时间 n。每个周期或时间间隔允许完成一项任务。任务可以按任何顺序完成,但有一个限制:两个 相同种类 的任务之间必须有长度为 n 的冷却时…...

Spark 的 Skew Join 详解
Skew Join 是 Spark 中为了解决数据倾斜问题而设计的一种优化机制。数据倾斜是指在分布式计算中,由于某些 key 具有大量数据,而其他 key 数据较少,导致某些分区的数据量特别大,造成计算负载不均衡。数据倾斜会导致个别节点出现性能…...

讯飞星火编排创建智能体学习(一)最简单的智能体构建
目录 开篇 智能体的概念 编排创建智能体 创建第一个智能体 编辑 大模型节点 测试与调试 开篇 前段时间在华为全联接大会上看到讯飞星火企业级智能体平台的演示,对于拖放的可视化设计非常喜欢,刚开始以为是企业用户才有的,回来之后查…...

mac-m1安装nvm,docker,miniconda
1.安装minicondaMAC OS(M1)安装配置miniconda_mac-mini m1 conda-CSDN博客 2.安装nvm(用第二个方法)Mac电脑安装nvm(node包版本管理工具)-CSDN博客 3.安装docker dmg下载链接docker-toolbox-mac-docker-for-mac安装包下载_开源镜像站-阿里云 教程MacOS系…...

STM32F407之Flash
寄存器分类 一般寄存器分为只读存储器 (ROM) 随机存储器(RAM) 只读存储器 只读存储器也被称为ROM 在正常工作时只能读不能写。 只读存储器经历的阶段 ROM->PROM->EPROM->EEPROM ->Flash 优点:掉电不丢失,解构简单 缺点:只适…...

优化 Go 语言数据打包:性能基准测试与分析
场景:在局域网内,需要将多个机器网卡上抓到的数据包同步到一个机器上。 原有方案:tcpdump -w 写入文件,然后定时调用 rsync 进行同步。 改造方案:使用 Go 重写这个抓包逻辑及同步逻辑,直接将抓到的包通过网…...