前端视角的可观测性(一)

林十二
• 阅读 133

TL;DR

Gartner将应用可观测性列为2023年重要战略趋势之一。

作为开发者, 即便没有专精此道。但了解一下,还是有必要的。

前言

最近,我所在的产品组,将完善监控系统,放入了版本规划中。

趁此良机,了解了一波可观测性相关的背景和技术。

同时,对原有的监控方式,进行了一定的改造。

可观测性

控制理论中的可观察性(observability)是指系统可以由其外部输出推断其其内部状态的程度。系统的可观察性和可控制性是数学上对偶的概念。可观察性最早是匈牙利裔工程师鲁道夫·卡尔曼针对线性动态系统提出的概念[1][2]。若以信号流图来看,若所有的内部状态都可以输出到输出信号,此系统即有可观察性。

什么是可观测性?

可观测性是指能够通过检查系统或应用的输出、日志和性能指标来监控、测量和理解系统或应用的状态。

讲人话,我理解就是将传统监控系统的日志,进行了标准化、体系化。同时,将原来“孤岛式”的日志进行了“关联”。将所有日志组合成整体,以此来分析系统状态。

为什么会出现?或者说,为什么现在火了?

监控系统并不是什么稀罕事务,但为什么之前没有什么热度呢?

我认为,是排查问题的门槛,变高了。变高的原因,主要有2方面:

  1. 系统复杂度
  2. 数据量

系统复杂度

首先,是系统的复杂度在不断上升。单机软件、集群部署、云服务、虚拟化。

软件部署方式的每一次升级,都在提升软件系统的整体能力。

与此同时,一旦出现问题,排查&解决问题的难度,也在不断上升。如果身边有运维同学,可以听他们讲一讲,独属于他们的、深夜里的故事🤣

数据量

从计算机诞生,我们已经经历了单机软件、局域网、互联网,且身处移动互联网

在网络高度普及的今天,软件和服务,包裹着每一个网民。网络触手的延伸,在提供了高度便利的同时,也给数据量带来了井喷式的增长。这给问题排查,增加了不小的难度。

当下,我们身处移动互联网的上半场,当摄像头、家用电器、车载系统和新基建中无处不在的传感器入网后,在移动互联网的下半场(IoT),数据量的暴增,是可以预见的。

所以,传统监控系统相对片面、局部的监控指标,无法满足复杂环境下的系统状态监控、问题排查和系统调优。

怎么用?

Opentelemetry、Prometheus、Grafana、Jaeger等等。现在已经有很多成熟的开源工具可供集成、或二次定制开发。也有不少收费的平台,方便使用。

通过这些可观测性工具,可以

  1. 更加全面的监控系统指标
  2. 更清晰的分析调用链条
  3. 更准确、更有把握的的优化系统瓶颈点

这些不是空口白话,我们产品在初步集成Jaeger后,已经发现了几处有价值的隐藏问题。这在原来,只能通过大规模的压力测试(如果有)、客户现场反馈来发现、修复。

后边有机会(如果不鸽),会分享一些脱敏的相关实践。

一点想法

这周,集成进系统的Jaeger基本可用了。通过和后端师傅的交流,发现了几处隐藏的问题,挺开心的。

虽然有些马后炮了,但在毕业不久的时候,就有对完善的监控体系的期待了。可惜,当时虽然有考虑过监控系统的雏形,但只停留在想象中了。现实里的时间,都去打游戏了。。。

总之,Observability相关的技术, 不是颠覆传统监控系统的银弹

在我看来,更像是应运而生。是对传统监控体系的完善、补充和升级。

参考资料

  1. wiki
  2. RedHat
点赞
收藏
评论区
推荐文章
以前端视角,漫谈「云端」
当今世界,云计算技术在快速发展,不断为我们带来新的应用场景和解决方案。作为一名前端开发者,了解云技术并掌握如何在前端中应用它们是必不可少的。本篇文章将介绍云计算技术的基本概念,并从前端角度探讨如何使用云技术提高应用的可扩展性、安全性、性能和用户体验。
在京东如何做好前端系统的可观测性
可观测性是一种系统属性,如功能性或可测试性。通过收集和分析系统的运行状态以及系统所承载的业务状态,用一种可以让人理解的形式展示出来,以供我们对系统的运行情况做出合理的判断。
DeepFlow开源 DeepFlow开源
1年前
K8s 应用的网络可观测性: Cilium VS DeepFlow
K8s是微服务设计理念能落地的最重要的承载体,本文主要聚焦谈谈K8s的网络可观测性,以及其给基础设施/应用等团队能带来的价值。
Stella981 Stella981
2年前
2015年开源前端框架盘点TOP20
2015年已经过去了,作为一个前端开发者,我觉得有必要把过去一年帮助过我或朋友们的优秀开源前端框架做个盘点,希望这些项目能够越来越好,帮助到更多的前端开发者们。此榜单根据github上star数作为排名依据,一个人力量有限,如果收集有遗漏欢迎补充。1、名称:Bootstrap类别/语言:HT
可莉 可莉
2年前
2015年开源前端框架盘点TOP20
2015年已经过去了,作为一个前端开发者,我觉得有必要把过去一年帮助过我或朋友们的优秀开源前端框架做个盘点,希望这些项目能够越来越好,帮助到更多的前端开发者们。此榜单根据github上star数作为排名依据,一个人力量有限,如果收集有遗漏欢迎补充。1、名称:Bootstrap类别/语言:HT
Wesley13 Wesley13
2年前
(三)Amazon Lightsail 部署LAMP应用程序之连接到Lightsail数据库
连接到Lightsail数据库简介:应用程序的Web前端的第一次迭代不建议固有的可伸缩性,因为数据库和前端位于同一台机器,只需要额外的前端容量,添加额外的数据库实例就会出现问题,若想解决此问题,需要分离前端和数据库,在此步骤中,您将调整PHP前端的配置,使其指向先前部署的Lightsail数据库。!在这里插入图片描述
Wesley13 Wesley13
2年前
0基础前端开发需要学什么?
  0基础前端开发需要学什么?零基础学员入门前端需要了解前端行业的发展趋势、学习前端的方法、前端学习路线详解以及前端案例展示等内容;有老师指导的情况下,可以结合学员自身情况制定前端学习路线,明确学习前端的路径、未来发展趋势。提前为学员打好基础,避免小白学员走弯路。  小白学员面临的前端如何入门、如何开始学习前端、前端能够做什么等问题。因此入门前要明确学习
API 小达人 API 小达人
9个月前
如何提升 API-First 设计流程
一个APIFirst设计应该具有可复用性、互操作性、可修改性、用户友好性、安全性、高效性、务实性,并且重要的是,与组织目标保持一致。这些基本特征将确保API能够有效地为APIFirst组织战略和开发模式做出贡献,在这种模式中,API可以最大限度地为业务创造价值。但如何生成这样的APIFirst设计呢?
四儿 四儿
5个月前
语音数据集:AI语音技术的基石
一、引言在人工智能领域,语音技术正逐渐成为研究的热点之一。语音数据集作为AI语音技术的基石,对于模型的训练和应用至关重要。本文将深入探讨语音数据集的重要性、构建方法、挑战以及未来的发展趋势。二、语音数据集的重要性语音识别:语音数据集是实现语音识别的关键。通
邢德全 邢德全
2个月前
NestJS 入门到实战 前端必学服务端新趋势无密
NestJS入门到实战前端必学服务端新趋势无密download》chaoxingit.com/212/从NestJS入门到实战:前端必学的服务端新趋势在当今互联网时代,前端开发已经成为了技术领域中的热门方向之一。然而,随着Web应用程序的复杂性不断增加,前
林十二
林十二
Lv1
沧海月明珠有泪,蓝田玉暖日生烟!此情可待成追忆,只是当时以惘然!
文章
3
粉丝
0
获赞
0