软件监控发展简史

软件监控简史,从 00 年代开始。发生了什么变化?为什么事情变得如此神秘?

终端设备上日益重要的用户体验通过边缘计算和分布式计算不断得到改善。然而,服务质量的测量仍然使用基于服务器的原语进行。

我们的 2000 年软件监控是这样的:

570ad56bad726c99488fb6a019cea058.jpeg

用户通过浏览器访问网络。互联网速度缓慢且不稳定,因此糟糕的体验不会导致客户流失。这个时间段,各种基建发展的不完善,大家主力对象都是PC,上网时间比较短,场景也比较少,慢是预期之内,所以一切发展都是正常的。

到了 2000 年代后期,手机问世了。这改变了一切,而且改变得很快。

7caf380b936b60f4d326dd486d284dfb.jpeg

用户注意力的持续时间缩短到“电梯间”和“咖啡间”、“上班之余”、“睡觉前一分钟”。用户上网开始变得非常方便,这意味着用户要求更多。注意力持续时间缩短。应用程序从web端转向娱乐互联网,开始满足人类多巴胺需求。延迟令人无法接受。同时延迟高的站点也时刻面临被淘汰的风险。

9b6f473165dc669935a2127be3478346.jpeg

企业开始认真对待分布式系统,想尽办法提升用户体验,缩短用户访问时延。

最先利用这一点的服务是媒体服务,各种视频软件铺面而来,其目的是快速接触客户,以便更快地进行消费用户。

其中内容分发网络(CDN)和边缘媒体得到广泛采用。用户现在可以快速上传和下载文件。

5761e6c17825e1da0c7e2587ee28f0d6.jpeg

社交媒体、直播和其他 over-the-top (OTT) 平台广受欢迎。更快的性能提高了用户体验。注意到系统复杂程度的快速变化了吗?看看下面的图片 👇

f3e25f461ee5da5f37f36ed99e9a1785.jpeg

随着计算机用户的迅速增长,2B软件和互联网迎来了爆发式增长,软件研发人员开始研究用户体验和使用习惯。例如:他们做什么的?他们使用系统的频率,以及他们与服务器的距离。

现在,工程师必须监控两件事:客户体验(时延)和服务器健康状况(资源占用)。

这种转变发生得太快,以至于很多工程师根本无法理解各种监控软件和各种监控指标。还有一些软件工程师心安理得认为,为什么要加一些监控指标?又要多维护一些监控软件,增加企业成本,有这个必要吗?当软件出现故障用人盯着不行吗?有什么问题吗?

然而一些早期吃到用户红利的互联网企业,早已把监控当成他们服务器端的基础设施,他们通过这些基础设施察觉用户的一举一动,所以当互联网普及速度超过人们想象时,互联网企业基本呈压倒之势占领了2B软件。小型软件公司逐渐消亡之势,大型互联网公司则越来越强。

不过监控主要由服务器端的基础设施处理。当请求到达服务器时,它们可能已经丢失了客户特定的请求信息,或者需要降低存储信息的成本。因此,我们对基础设施的健康状况有很好的覆盖,但与应用程序和产品行为的关联性很小。

这是无法接受的。只解决这些服务器健康带来的收益并不是那么大。

产品无法在缺乏透明度的情况下运行,因此它们会根据来自终端设备的事件创建自己产品层面的监控指标。

这个时候就带来了公司高层为代表的产品人员和技术工程人员之间的矛盾,监控本身就是针对一些时延指标和服务器健康,为什么要加入业务指标?

突然之间,每个团队都有自己的系统健康状况监控和理解。一片混乱!!

这种意见和观点分散的问题在于,工程团队很少能达成“提高客户体验”共识。他们有办法知道 99% 的请求都有效,但他们无法推断出 99% 的用户是否满意。

例如:虽然产品可以判断出 1% 的用户放弃了直播,但他们无法知道这是否是因为这 1% 的用户在直播中遇到了延迟。

目前可用的工具需要花费大量精力和心血才能回答上述问题。解决这些问题的激励只能锁定额外的 1% 收益。

这就是 9 的意义,从 99 → 99.9% 所需的成本和努力与从 90 → 99% 所需的成本和努力是相同的。

虽然只有一小部分客户体验是通过后端提供的,但整个遥测数据和生命周期都存在于服务器端。基于此,近年来,日志、指标、监控呈蓬勃发展,这包括基本链路追踪工具和 OpenTelemetry 规范。

为了利用可观察性来解答有关最终用户体验的问题,我们需要技术来分析不同细分市场的数据,例如地区、群体和个人用户。然而,目前的工具无法处理这种级别的基数。现有的技术无法提供经济有效的方法来分析不同细分市场的趋势,例如比较去年与今年的“黑色星期五”的销售额。

借助提高成本效益的工具,让监控更贴近客户,它将始终保持凝聚力和联系性。好的,那么我们如何解决这个问题?您认为应该改变什么?

推荐

A Big Picture of Kubernetes

Kubernetes入门培训(内含PPT)


原创不易,随手关注或者”在看“,诚挚感谢!

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

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

相关文章

wvp-GB28181-pro 源码分析-服务启动流程及IPC注册(一)

文章目录 启动顺序1、VManageBootstrap文件中的main2、优先加载的bean3、gb28181/SipLayer.java4、media/MediaServerConfig.java5、conf/SipPlatformRunner.java6、gb28181/task/SipRunner.java2024年6月20日下载的wvp-GB28181-pro,版本号为2.7.2,使用ZLMediakit主干版本。 …

程序员兼职接单有哪些渠道?一篇文章带你了解!

2024年,程序员兼职接单别只盯着朋友圈啦!这些兼职接单渠道你一个都不容错过!想要通过兼职接单获取收入的程序员,一定不能错过这篇文章! 程序员兼职接单的渠道可以简单的分类为兼职平台和程序员论坛和自身人脉拓展三个…

【SD3辅助工具推荐】InstantX发布了三种SD3专属的ControlNet模式——Pose、Canny和Tile

InstantX 是一家专注于人工智能内容生成的独立研究机构。此前,曾开源著名的InstantID和论文《InstantID : Zero-shot Identity-Preserving Generation in Seconds》。随着本月12号,Stability AI正式开源了其产品 Stable Diffusion 3,这家机构…

吃透Flink State面试题和参考答案

目录 什么是 Flink 中的状态(State)? Flink 支持哪两种状态类型? 解释一下什么是 Keyed State 和 Operator State。 Flink 中的状态是如何存储的? 什么是 Flink 的状态后端(State Backend)? 比较 MemoryStateBackend、FsStateBackend 和 RocksDBStateBackend 的区…

js笔试题目2024

字符串按字符出现频次排序 "Aacbbcc" 输出 "cccbbAa" const s "Aacbbcc"function setString(string) {const map new Map();let res for(let char of string){const val map.get(char)map.set(char, val?val 1:1)}const arr Array.from(m…

(1)ubuntu g++使用

文章目录 g流程常用示例 g流程 预处理->编译->汇编->链接预处理: 展开头文件,宏替换,去除注释,条件编译 g -E test.cpp -o test.i -E 只进行预编译, 生成真正的源代码.i文件编译:检查语法,生成汇…

高效设计必选!5款好用的UI动效工具

UI 动态设计是应用程序设计的重要组成部分。随着技术的积累,UI设计中的动态效果遍地开花,UI动态效果可以使我们的页面更时尚、更有趣、更人性化。5G网络的快速发展也使美丽的动态效果几乎无缝地嵌入到UI界面中。今天,毫不夸张地说&#xff0c…

极氪与 TDengine 合作建设新一代车联网云端基础平台

在车联网场景中,智能车辆通过各种传感器按时采集车辆状态信息,包括但不限于行驶速度、发动机转速、轮胎压力、里程等。此外,某些事件触发后会生成车辆事件数据,例如门锁状态变化、碰撞、异常移动等。每次数据上报都包含时间戳&…

Visual Studio2022+cuda环境配置及代码调试

环境配置 下载并安装CUDA Toolkit 打开Visual Studio,新建项目。如下图所示,已经包含CUDA编程选项 代码调试 1、打开cu文件的属性页,按下图所示,将Host中的Generate Host Debug Information设置为“是" 2、不可勾选Nsight…

揭秘网络安全攻防战

网络安全攻防战综述 网络安全攻防战概念 网络安全攻防战是指在网络空间中,攻击者和防御者之间的持续斗争。攻击者(黑客)利用各种手段企图突破防御,窃取信息、破坏系统,而防御者则采取各种措施保护网络安全&#xff0…

ARM功耗管理框架之LPI

安全之安全(security)博客目录导读 思考:功耗管理框架?SCP?PPU?LPI?之间的关系?如何配合? 目录 一、功耗管理框架中的LPI 二、LPI分类 三、Q-Channel和P-Channel对比 四、Q-Channel和P-Ch…

网络故障排查-TCP标志位

目录 1. SYN(Synchronize) 2. SYN-ACK(Synchronize-Acknowledge) 3. FIN(Finish) 4. RST(Reset) 故障排除步骤 网络流量分析仪中的TCP标志位(SYN、SYN-ACK、FIN、RS…

第28讲:Ceph集群使用RBD块存储与K8S Volumes集成

文章目录 1.Ceph集群使用RBD块存储与K8S集成简介2.Ceph集群RBD块存储与K8S Volume集成2.1.在Ceph集群中创建K8S集群使用的块存储2.2.创建用于K8S访问Ceph RBD块设备的认证用户2.3.将认证用户的Key存储在K8S Secret资源中2.4.在K8S集群的所有节点中安装Ceph命令2.5.创建Pod资源使…

【uni-app学习手札】

uni-app(vue3)编写微信小程序 编写uni-app不必拘泥于HBuilder-X编辑器,可用vscode进行编写,在《微信开发者工具》中进行热加载预览, 主要记录使用uni-app过程中自我备忘一些api跟语法,方便以后编写查找使用…

【React 】折叠面板,点击展开时再请求数据

需求背景:使用折叠面板的形式展示数据,面板内部数据需要在打开时请求接口获取。 遇到问题:最开始使用Antd 的折叠面板组件,它对于数据直接渲染是没问题的,但是不好满足打开面板时再动态加载数据的需求,于是…

计算机视觉与深度学习实战,Python为工具,基于Simulink进行图像和视频处理

计算机视觉与深度学习是当代人工智能领域的两大热门技术,它们在图像识别、目标检测、视频分析等领域展现出巨大的潜力和应用价值。Python作为一种强大的编程语言,结合深度学习框架和Simulink等工具,为计算机视觉和深度学习的研究与实践提供了丰富的资源和平台。以下将结合Py…

JAVA中EasyPoi导出word文档附带表格数据

导入easy-poi相关依赖 <!-- word导出 方式&#xff1a;easypoi --><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.4.0</version></dependency><dependency><…

VBA学习(12):制作动态模糊匹配的下拉菜单

今天就再给大家分享一下&#xff0c;如何使用VBA制作更好用的动态模糊匹配下拉菜单。 完成后的效果演示如下&#xff1a; 如上图所示&#xff0c;点击A列单元格&#xff0c;Excel会自动跳出一个文本输入框和一个列表框。当在文本框中输入数据时&#xff0c;列表框的数据会随之…

IIS代理配置-反向代理

前后端分离项目&#xff0c;前端在开发中使用proxy代理解决跨域问题&#xff0c;打包之后无效。 未配置前无法访问 部署环境为windows IIS&#xff0c;要在iis设置反向代理 安装代理模块 需要在iis中实现代理&#xff0c;需要安装Application Request Routing Cache和URL重…

思维导图之计算机网络整体框架

高清自行访问&#xff1a;计算机网络整体框架 (yuque.com)