数字化时代,如何做好用户体验与应用性能管理
引言
随着数字化时代的到来,各个行业的应用系统从传统私有化部署逐渐转向公有云、行业云、微服务,这种变迁给运维部门和应用部门均带来了较大的挑战。基于当前企业 IT 运维均为多部门负责,且使用多种运维工具,因此,当业务出现问题时很难快速定位故障根源。而随着业务上云,云平台运维和应用运维的责任归属不同,业务方(租户)只负责云平台之上运维,若是要对业务体验全链路负责,就会导致有责任没手段。同时,容器微服务架构应用后的业务之间的访问关系更加复杂,也会产生应用出现故障后分析困难等问题。基于以上的背景,企业数字化时代应用的健康诊断变得至关重要。
问题及挑战
如下图,当代码量的增长达到 100 倍,故障被企业 IT 部门察觉前已由用户申报达到 80% 时,作为企业会非常被动。用户对服务超时非常敏感,当 5 秒打不开应用时便会直接选择放弃。同时,用户对故障解决时效要求也比较高,75% 的用户希望在 5 分钟内解决业务故障,而业务系统需要超过 24 小时才能解决的故障占比在 25% 左右。
应用是一个端到端的多技术栈复杂整合环境,用户端包括移动端、浏览器、小程序,网络层包括路由器、防火墙和负载均衡等,后台支撑应用包括中间件、数据库、主机、MQ 等。所以如何去高效精细化的实现整个应用端到端的全链路性能问题洞察和诊断、快速找到故障的边界、以及特别是 VIP 用户出现性能问题如何快速追踪。这些应用的复杂度是企业运维部门和业务部门都需要考虑的问题。
传统的监控工具早已无法满足当前企业面临的问题。因为一个应用会涉及到数据库、第三方的 API 调用、应用服务器、中间件、Web、网络层等多个链路,因此,当系统慢是无法快速定位就是是拿个环节、组件以及指标导致。日常企业去判断上述问题时,会需要网络团队、开发团队、数据库团队、基础设施团队等多方协助排查,且排查效率较低。
解决方案与功能场景介绍
基于以上问题与挑战,云智慧提供了全新一代架构的应用性能管理解决方案。以提升数字化用户体验,帮助企业实现数字化转型赋能为目标,提供了 web 用户、移动用户、主动拨测、压力测试前端侧性能监控,同时贯穿网络层到后端各个组件的全栈一体化性能监控方案,包含 Web 服务器支持 IIS、Nginx 等。此外,应用后端支持市面上主流的开发语言以及微服务容器架构,基于 Smart Agent 的探针技术,部署在容器宿主机上就可以自动发现容器内部应用拓扑关联关系,实现整体的业务关联快速分析和根因快速诊断。
产品技术架构
下图为产品整体的技术架构,主要是分三层:
- 数据采集层:APM 产品支持市面上比较主流的开发语言,如 Java、PHP、Python 等。APP 端支持 android 和 iOS 等各种版本。依赖主动拨测,基于全球 IDC 实现 Monitor 数据监测。
- 数据存储层:采集到的数据统一放到产品的数据存储层进行数据存储。云智慧产品基于列式存储的技术,在各行业项目上经过大量数据实践,可以实现秒级查询和展示。
- 数据分析与展示层:该层主要提供了具体产品的相关功能。包括拓扑展示,请求分析、用户追踪,代码堆栈详情分析,网页性能分析,页面响应时间分析、可用率分析等相关功能。
整个平台提供告警通知功能及标准 API 接口,方便用户其他业务系统调用数据进行应用。接下来,我们主要围绕 APM 和拨测两款产品的应用场景进行整体阐述。
监控宝:7*24 小时主动 IT 性能监控
云智慧拨测产品监控宝提供 7*24 小时主动 IT 性能监控;产品在全球范围内大概有 300 家的 IDC 节点,提供 800 家的服务器,IDC 数量决定了数据反馈的全面性,可以有效保障业务在全球的用户体验;国内节点覆盖 30 多个省份和 100 多个城市和地区,更能精准的定位问题所在区域。此外,也较为全面的覆盖了多个运营商,包括移动、联通、电信、教育四大运营商。以上三个维度,可以看出云智慧监控宝产品可以为各行业企业提供业务保驾护航的能力。
监控宝平台支持的协议包括 http/https、ping、DNS、ftp、traceroute 等,支持协议类型种类丰富,满足企业多方面使用需求。功能包括网页性能诊断、CDN 评估效果、网络质量探测、网站访问速度、接口服务可用率等。同时,整个产品支持多页面脚本录制,方便企业在大型网站上提供多页面监控能力,以及能够快速发现深层次的页面性能问题。
透视宝:端到端全链路应用性能诊断
云智慧 APM 透视宝产品提供端到端全链路的应用性能诊断。用户体验端包括 APP、浏览器、小程序的全栈性能分析和性能探测。后端支持应用拓扑的发现和代码质量的追踪,真正做到端到端一体化,实时掌握前端、透视后端,实现全业务链环节问题监控与分析。
下图为透视宝产品的技术实现原理, APP 端通过嵌入 SDK 实现用户行为和 APP 崩溃卡顿数据的抓取;浏览器通过页面嵌入 JS 方式实现页面详情的分析;主机操作系统通过部署 agent 实现 cpu、内存、网络、io 等指标监测;应用后端根据不同开发语言部署不同的探针,在中间件启动脚本里注入参数,重启应用后就可以实现数据的采集,小程序通过 mini agent 抓取相关数据。
应用场景介绍
- 业务服务持续监测与告警
业务服务的持续监测和告警在一些互联网企业当中经常会遇见。比如北京区域网站访问是健康的,但其他区域网站访问异常时,也会收到的其他区域用户投诉。针对上述问题,由于目前各行业网站页面加载时序元素复杂,外加整个页面会有一些动画图片效果的呈现,所以需要能够实时探测网站在中国区域到地市级别和区级别的监控的主动拨测产品。监控宝可监测不同运营商链路访问网站速度、404 相关错误,以及可通过 IDC 节点主动收集数据,帮助企业及时分析并主动探测业务问题。该场景主要应用于互联网企业,电商企业,还有企业官网、在线教育等行业。
- 内外网及网络专线质量监测与告警
企业内外网业务服务于全国。运营商网络不稳定的用户投诉,分公司专线或 VPN 经常出现的各种问题,均会导致业务运营受到较大影响。 外网网络质量监测依托于云智慧在全球 IDC 节点提供主动的 ping、MTR、traceroute 网络探测,60 秒的探测频率可以让问题被及时发现。针对内网专线的监测,云智慧提供魔盒产品。类似机顶盒的小盒子,使用寿命长、无风扇设计、节能环保,直接部署在分公司数据中心机房中即可使用。该场景主要应用于医疗行业、电商、金融、政府军工等集团企业。
- 网页用户体验分析与持续优化
随着网站内容更加复杂化,大量元素加载耗时变长,首屏响应时间变得更加重要。如:当用户点击二级页面时会出现 404 错误或响应慢等现象,企业虽然做了 CDN 加速,在此情况下也很难确定加速的质量的好坏。然而在互联网时代下,用户对网页的加载速度提出更高要求,出现网页响应过慢或无法访问则会导致用户失去耐心而流失,以此便会给企业业务收入以及品牌均会带来损失。基于上述问题,监控宝产品提供了多页面脚本录制功能,可以模拟人点击操作所有页面各个环节的性能诊断,及时发现元素性能问题。此外,基于企业同时使用多家 CDN 厂商导致具体加速质量难以判断的现象,监控宝也提供了 CDN 整体性能评估功能,方便用户做 CDN 厂商性能体验对比。该场景主要应用在网站有丰富的大型 logo / 图片 / 轮播要展示的企业,如汽车类、广告展示类以及大量使用 CDN 服务商的企业。
- 业务流程监测与优化
业务流程监测与优化主要解决业务调用第三方 API 接口性能问题。由于业务流程现状复杂性,完整的互联网或内部业务访问需要经历多重用户认证,以及多个内部环节处理才能最终完成。任何一个环节出现问题都可能导致业务不能正常进行,以及用户体验不佳、满意度下降,甚至出现用户流失。所以需要监控宝帮助企业从业务视角准确感知整体业务的性能和质量状况。该场景主要应用在使用第三方 API 服务的互联网企业、关注用户业务访问过程及体验的企业。
- 应用拓扑自动发现与监控
全自动发现应用所有技术栈及其关联关系可以帮助企业从宏观视角把握一个应用及其关联应用的整体状态以及请求数、响应时间、错误等变化趋势,以此快速定位各层级问题。
随着企业应用上云和容器微服务化,应用之间调用关系愈来愈复杂。全局拓扑自动发现与监控是通过将复杂的请求调用关系拓扑图化来帮助运维人员和业务开发人员快速定位性能问题。产品可以直观的通过颜色变化分辨出是缓慢问题还是错误问题。同时拓扑上能发现各个组件的调用情况以及自身应用访问的组件,数据库、MQ、Nosql 和 API 接口情况。此外,通过拓扑可以直观的判断是自身应用问题还是其他应用性能导致的间接问题。此外,产品提供类似时光机的回溯功能,选择一定时间范围可以统计请求次数,缓慢次数、非常缓慢次数和错误次数。
- 应用性能问题及故障快速诊断
随着云计算、大数据、容器、微服务等技术在企业的广泛采用,企业业务系统数量不断增加,运行环境也愈加复杂,需要不断根据市场环境和客户需求的变化进行快速响应和迭代,不断推出新的业务,减少业务故障风险,推动业务营收的增加;
第二个场景是应用性能问题及故障快速诊断,使用人员通过拓扑发现问题后需要第一时间定位问题,产品提供简单直观的操作界面,在拓扑图上点击应用实例就可以快速跳转到详细问题分析界面,比如上面截图的内容,可以看到后台代码堆栈追踪,慢 SQL 语句、外部接口详情、自身耗时、请求参数等详细分析问题的指标,性能问题一目了解,问题定位运筹帷幄。
- 端到端全链路性能问题追踪
目前企业业务都是通过 APP、小程序或浏览器访问,因此在使用 APM 产品排查分析前端各种崩溃、卡顿、网络等问题后还是不能解决业务慢的问题。然而此时更多的是支撑业务后端的应用产生了性能故障,企业该如何去快速判断,精准的定位呢?云智慧产品提供了前端页面一键跳转后端的串联功能。如下方图片所示,当业务在登陆时已经能看到体验非常差,此时,在点击请求性能分析界面的查看按钮,便可以直接跳转到后端代码分析详情页面。该操作的前提条件是监测应用已经注入探针,不然是无法实现的。该场景可以有效的把前端和后端打通,串联追踪。
案例分享
某银行部署了 APM 整套产品,实现了应用后端整体性能监控,探针数量 115 个、接入应用数量 225 个、日均业务请求量 1500tps、日均应用请求的落盘数据量 150G 左右。截止到现在平台稳定 7*24 小时运行、探针对业务系统资源占用率控制在 3% 以内。在大量请求并发的情况下,云智慧基于列式存储的技术架构,也能实现页面妙级查询和妙级响应。
写在最后
近年来,在 AIOps 领域快速发展的背景下,IT 工具、平台能力、解决方案、AI 场景及可用数据集的迫切需求在各行业迸发。基于此,云智慧在 2021 年 8 月发布了 AIOps 社区, 旨在树起一面开源旗帜,为各行业客户、用户、研究者和开发者们构建活跃的用户及开发者社区,共同贡献及解决行业难题、促进该领域技术发展。
社区先后 开源 了数据可视化编排平台 - FlyFish、运维管理平台 OMP 、云服务管理平台 - 摩尔平台、 Hours 算法等产品。
相关文章:

数字化时代,如何做好用户体验与应用性能管理
引言 随着数字化时代的到来,各个行业的应用系统从传统私有化部署逐渐转向公有云、行业云、微服务,这种变迁给运维部门和应用部门均带来了较大的挑战。基于当前企业 IT 运维均为多部门负责,且使用多种运维工具,因此,当…...

Python爬虫(7)selenium3种弹窗定位后点击操作,解决点击登录被隐藏iframe无法点击的登陆问题
之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章 Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式 Python爬虫(2)-Selenium控制浏览…...

如何对项目健康度进行测量?评估项目健康状况
项目驱动变革,大部分公司逐步由运营驱动转变为项目驱动,带来更多重新和商业价值。对组织而言,从商业角度看,项目旨在推动组织从一个状态转到另一个状态,从而达成特定目标。项目的健康情况如何关乎项目和变革的成本&…...

美国原装二手keysight E4980A(安捷伦)2MHZ LCR表
Agilent E4980A、Keysight E4980A、LCR 表,20 Hz - 2 MHz E4980A 是 Agilent 的 2 MHz LCR 表。LCR表是一种电子测试设备,用于测量电子元件的电感(L)、电容(C)和电阻(R)。LCR 表可…...
《clean coder》:关于摆烂,争论和心态
“凡是不能在五分钟之内解决的争论,都不能依靠辩论解决” ---- Kent Beck 作为一个码农,我并不是一个喜欢争论的角色。很长一段时间会陷入一种摆烂的,被动的状态。“既然其他人想要这么做,就这么办吧”。这可能是非专业的行为中最…...

jenkins下载与简单使用
1.jenkins下载 因为我仍然使用的是jdk1.8进行开发,所以我下载的是jenkins2.332.1版本(jenkins2.346.1版本在2022年末不再支持java8,如果项目使用的是jdk11可以继续使用该jenkins版本),更多版本下载请点击jenkins下载 …...

3|物联网控制|计算机控制-刘川来胡乃平版|第3章:计算机总线技术 补充串行总线部分|课堂笔记|ppt
2022年 10月 10日 3.3 外部总线 3.3.2 RS-232-C总线 机械特性...

Blazor入门100天 : 身份验证和授权 (3) - DB改Sqlite
目录 建立默认带身份验证 Blazor 程序角色/组件/特性/过程逻辑DB 改 Sqlite将自定义字段添加到用户表脚手架拉取IDS文件,本地化资源freesql 生成实体类,freesql 管理ids数据表初始化 Roles,freesql 外键 > 导航属性完善 freesql 和 bb 特性 本节源码 https://github.com/…...

阅读源码和查看官方文档,是解决问题最高效的办法。
作为一个工作8年的老程序员告诉你:阅读源码和查看官方文档,是解决问题最高效的办法。不信你来看,这个困扰了读者半天的问题我查了源码和文档后瞬间解决。 前言 上周五有位读者私信我一个问题,说困扰了他半天,研究了一…...
云原生流量管理系统中 Service , Ingress 和 Endpoint 的关系
摘要 Kubernetes(简称 K8s)是一个用于容器编排和管理的开源平台,其中流量管理是 K8s 的重要功能之一。K8s 提供了多种流量管理方式,以便对不同场景下的流量进行控制和管理。以下是 K8s 中常用的流量管理系统: Service:Service 是 K8s 中最基本的流量管理方式,用于提供…...

给你安利几款好用的谷歌浏览器插件
给你安利几款好用的谷歌浏览器插件前言一 Octotree 插件二 GitCodeTree 插件三 SourceGraph 插件四 GitZip 插件五 Enhanced GitHub 插件六 插件下载安装6.1 谷歌应用商店下载6.2 离线安装6.2.1 下载插件6.2.2 安装插件七 移除、启用、停用插件小结前言 GitHub是全球最大的代码…...

JDK定时器Timer原理
前言 前些时间想到利用redis实现延时队列,但是底层的定时器不止如何实现好些,故此研究了一下jdk的Timer。 Timer是一个用于执行定时任务的类,可以单次执行或按指定时间间隔循环执行(直到主动cancel或线程被杀掉)。Ti…...
vue3中使用swiper完整版教程
介绍 在 vue3 中使用 swiper, 实现轮播图的效果;如果组件样式等模块引入不当,很有可能导致,页面无效果;或者想要的箭头或者切换效果异常问题。具体使用方式如下所示: 使用方式 使用命令 npm install swiper 安装 sw…...
某个div的滚动条样式
.item-body,.chart2{/*滚动条整体样式*/&::-webkit-scrollbar {/*高宽分别对应横竖滚动条的尺寸*/width: 10px;height: 1px;}/*滚动条里面小方块*/&::-webkit-scrollbar-thumb {border-radius: 10px;-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);background:…...

Spring Boot框架基础介绍
Spring Boot 是一款基于 Spring 框架的开源应用程序开发工具,它旨在简化 Spring 应用程序的配置和开发过程。Spring Boot 提供了一种简单的方式来创建可独立运行的、生产级别的应用程序,并在需要时进行部署。Spring Boot 在微服务架构和云计算环境下得到…...

Git - 在主分支上创建分支并提交代码
拉取最新代码 因为当前在 master 分支下,你必须拉取最新代码,保证当前代码与线上同步(最新),执行以下命令: git pull origin master创建分支 目前我们在 master 主分支上,需要执行以下命令&…...

第三届无线通信AI大赛分享交流会暨颁奖典礼顺利举办,大赛圆满收官
2月16日,第三届无线通信AI大赛分享交流会暨颁奖典礼在北京顺利举行,宣告大赛圆满收官。 分享交流会暨颁奖典礼以线上线下结合的形式展开,邀请无线通信领域的多位专家、学者与「基于AI的信道估计与信道状态信息反馈联合设计」、「基于AI的高精…...
程序的本质与类的说明
摘自《深入浅出WPF完整版》P132程序的本质就是“数据算法”,,这一本质一直没有改变一一类的作用只是把散落在程序中的变量和函数进行归档封装并控制对它们的访问而已。被封装在类里的变量称为字段 (Fied)它表示的是类或实例的状态:被封装在类里的函数称为…...

单片机——显示方式
数码LED 一、静态显示方式 1、连接 所有LED的位选均共同连接到VCC或GND,每个LED的8根段选线分别连接一个8位并行I/O口,从该I/O口送出相应的字型码显示字型。 2、这种连接方式的缺点就是需要的数据线太多:我们可以计算一下:8*4133根…...

leetcode 1~10 学习经历
LeetCode 习题 1 - 101. 两数之和2. 两数相加3. 无重复字符的最长子串4. 寻找两个正序数组的中位数5. 最长回文子串6. N 字形变换7. 整数反转8. 字符串转换整数 (atoi)9. 回文数10. 正则表达式匹配1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在…...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...