首页 > 其他分享 >敏捷监控与可观察性

敏捷监控与可观察性

时间:2024-01-08 19:33:15浏览次数:27  
标签:系统 查询 指标 监控 敏捷 观察 数据

敏捷开发实践必须依赖敏捷监控框架的支持。忽视系统状态的微小差异(包括基础设施、应用程序性能和用户交互)是企业无法承受的风险。特别是在性能指标和系统可靠性对客户满意度和忠诚度产生直接影响,并直接影响企业利润的情况下。

传统的应用程序性能监控(APM)工具最初设计用于更加静态和可预测的环境。这些工具并非旨在追踪微服务架构的快速迭代变化或者应对云原生应用程序的复杂性。这导致了现代可观测性方法的崛起,这种方法利用了APM的数据收集原理并扩展了其功能,以提供更深入的系统状态了解。

在本文中,我们将深入探讨可观测性和监控的核心概念,同时探讨现代可观测性方法与传统监控实践之间的差异和相互补充的关系。

通过数据质量优化应用性能 

性能指标的可靠性取决于所使用的数据。不同的数据源可能具有不同的格式和规模,这可能会影响对应用程序性能真实情况的理解。考虑到“垃圾输入,垃圾输出”的挑战,数据标准化可以作为一种纠正措施。它可以重新组织数据集,减少冗余并提高数据的一致性和完整性。其主要目标是确保数据被有效且一致地存储,以便更容易地检索、操作和理解。

对于应用程序性能监控(APM),存在多种标准化技术可帮助将异构数据转化为通用的度量标准,以便更有效地进行比较和分析:

  • 单位转换:标准化测量单位,例如将所有基于时间的指标转换为毫秒,这样可以保证数据的一致性,便于对比和分析。
  • 范围缩放:将指标调整到一个共同的范围。这对于比较原本位于不同规模上的指标很有帮助,能够让它们在相同的尺度上进行比较和分析。
  • Z 分数标准化:将指标转换为标准正态分布。这种标准化方法特别适用于处理异常值,能够让数据更加稳定和可比,并有助于发现异常情况。

监控与可观察性

在优化应用程序性能时,监控和可观察性发挥着同样重要但又截然不同的作用。有些人经常错误地互换使用这些术语,但两者之间存在微妙差异。监控使用主动方法,根据预定义的阈值收集数据点并设置警报来标记异常。它主要回答了一个问题:我的系统是否按照预期运行?

另一方面,可观察性则允许深入研究系统的行为,提供对您不知道存在的问题的洞察。这种方法可以帮助您回答:为什么我的系统没有按照预期运行? 监控更着重于实时状态和警报,而可观察性则更注重于系统行为的理解和深入分析。

示例:某电子商务平台

针对一个电子商务平台,其中应用程序的正常运行时间和用户体验至关重要,为了确保一切顺利运行,以下是监控和可观察性策略的正确组合:

  1. 监控策略

    • 实时性能监控:监测关键指标如服务器响应时间、页面加载速度和交易处理时间等。设置警报,一旦超出预定阈值,立即通知相关团队。
    • 基础设施监控:监控服务器、数据库、网络等基础设施的健康状况,确保它们运行良好,不会影响应用程序性能。
    • 用户行为分析:跟踪用户行为和交易路径,了解用户体验,发现潜在的瓶颈和用户流失点。
  2. 可观察性策略

    • 日志和异常追踪:收集应用程序和系统的日志数据,并实施异常追踪机制。通过这些数据分析,可以及时发现和解决潜在的问题。
    • 分布式追踪:监控服务之间的调用和交互,以识别潜在的性能瓶颈和系统间的依赖关系。
    • 指标和度量:采集和分析关键指标,如交易量、购物车转化率和用户反馈等,以衡量业务成功和用户满意度。

通过合理结合监控和可观察性策略,可以实现对应用程序性能的实时监控和全面了解,有助于及时发现问题并采取相应的优化和改进措施,确保用户体验和业务成功。

策略类型 策略名称 目的
监控 可用性检查 定期进行 ping 测试,确保网站可被访问
监控 延迟指标 测量页面加载时间,优化用户体验
监控 错误率跟踪 标记服务器错误如 “404 Not Found” 超过阈值的情况
监控 交易监控 自动检查关键流程如结账等是否顺利进行
可观察性 日志分析 深入分析服务器日志,跟踪失败用户请求
可观察性 分布式追踪 映射服务间请求路径,了解系统交互
可观察性 事件标记 在代码中设置自定义标签,实时了解用户行为
可观察性 查询驱动的探索 用于暂时性地检查系统行为的查询方法

监控和可观察性之间的协同作用

监控和可观察性并不是相互冲突的,相反,它们合作共同构建高效的应用程序性能管理(APM)框架。将监控和可观察性集成在一起可以获得许多优势,包括以下列出的优势:

  • 增强覆盖范围:监控能够识别已知问题,而可观察性让您能够探索未知问题。无论是系统崩溃还是微小的性能下降,都能得到全面覆盖。
    • 举例来说,不仅仅知道您的服务器响应了错误代码500,还能了解发生这种情况的原因以及对整个生态系统的影响。
  • 改进的分析:混合使用这两种方法让您能够从“正在发生的事情”转向“为什么会发生”。对于基于数据的决策至关重要。您可以更有效地分配资源,确定错误修复的优先级,甚至发现您之前未意识到的优化机会。
    • 例如,您可能会发现某些 API 调用在一天中的特定时间段消耗更多时间,并追溯到影响资源的内部进程。
  • 可扩展性:随着系统的增长,复杂性通常呈指数级增长。当监控和可观察性同步工作时,APM 的可扩展性大幅提升。监控可以帮助您密切关注性能指标,而可观察性则让您能够大规模微调系统以实现最佳性能。
    • 因此,您可以实现一种可扩展的方法,不仅能够主动识别瓶颈和资源限制,还可以调查并解决这些问题。

创建一个有凝聚力的系统

协同监控和可观察性是构建强大、可伸缩且充满洞察力的APM框架的关键组成部分。关键在于确立一个相互配合、相互依赖的监控和可观察性环境,以增强它们在维护系统可靠性方面的作用。尽管不同的情景可能需要不同的方法,但考虑以下基本原则可以建立一个结构紧密的监控和可观察性体系。

统一数据存储和检索

创建内聚分析管道的第一步是统一数据存储。单一的数据存储和检索系统可以提高分析速度和准确性。您的性能分析堆栈应当适应来自监控的静态指标和来自可观察性的动态指标。基础系统架构应具备有效处理不同数据类型的能力。解决方案如时间序列数据库或数据湖通常能够很好地满足这些需求。然而,考虑系统的数据索引、搜索和过滤能力至关重要,尤其是在处理大规模高速数据时。

互操作性

敏捷的APM系统依赖于监控和可观察工具之间的无缝数据交换。当每个工具作为独立系统运行时,存在获取孤立数据流和操作盲点的风险。考虑构建一个可互操作的系统,允许将数据聚合到单个综合仪表板中。选择符合通用数据格式和通信协议的工具。更高级的实现方法是利用自定义中间件作为连接不同工具之间的桥梁。这样,可以将监控KPI与可观测性工具中的详细日志和跟踪关联起来。

纠正措施

准确了解需要修复的问题内容可以帮助更快速地进行修复。在实时生产环境中,速度至关重要,因为每一分钟的次优性能都可能导致收入损失或失去用户信任。当监控系统标记异常时,合理的下一步是深入研究潜在问题。例如,监控系统可能会警告错误率突然飙升,但不提供具体原因。集成可观察性工具有助于连接各层面。这些工具能够筛选日志文件、查询数据库并分析跟踪数据,最终提供更精细的视角。因此,可以采取更具针对性、基于数据的行动。

建立工作流

要建立一个自动化工作流程,以便监控系统的警报可以触发可观测性工具中的预定义查询,快速追踪问题的根本原因,可以采取以下步骤:

  1. 集成警报与查询触发:确保监控系统和可观测性工具能够相互集成。这可能需要设置警报系统,以便在检测到异常时触发预定义的查询或脚本。
  2. 创建预定义查询:在可观测性工具中编写或创建与警报相关的预定义查询或脚本。这些查询应该能够检索与警报相关的详细信息,如日志、指标或其他数据。
  3. 自动化触发查询:配置系统,使得在监控系统发出警报时,自动触发这些预定义查询。这可以通过API调用、自动化脚本或其他集成方式来实现。
  4. 分析和响应:根据查询结果进行分析,识别根本原因,并采取相应的行动来解决问题。这可能涉及修复 bug、调整配置或其他必要的操作。
  5. 监控和优化工作流程:持续监控自动化工作流程的效果,并根据需要进行调整和优化,以确保其正常运行并持续提供价值。

通过建立这样的自动化工作流程,可以更快速地响应和解决监控系统发现的问题,减少手动干预的需求,并提高整体的效率和系统稳定性。

区分监控与可观察性 

虽然监测和可观察性方法常常相互交叉,但它们在以下方面有着不同的目标、方法和结果。

指标、日志、跟踪

监控主要围绕指标展开。这些指标是预定义的数据点,提供有关系统状态的定量信息,并指示何时违反了预设的阈值。这些通常是数值,例如CPU利用率、内存使用率或网络延迟。

可观察性更关注日志和追踪。日志记录特定事件和信息,对于深入调查问题至关重要,因为它们包含了丰富的上下文和细节,使您能够重现事件或了解流程的步骤。

追踪提供了更广泛的视角。它们追踪请求在系统中的旅程,记录其在各种服务和组件中的路径。追踪对于识别瓶颈、延迟问题和揭示性能问题的根本原因特别有用。 

被动管理与主动管理

监控主要关注预设的阈值,采用一种被动的管理方法。当某项指标违反这些预设限制时,监控系统会快速响应,支持更广泛的性能分析策略。这种反应性质非常适合及时解决已知问题,但可能不太适用于处理复杂和新颖问题所需的更主动和深入的方法。

可观察性扩展了监控的范围,采用主动和全面的分析来处理复杂和新颖的性能挑战。这种动态、前瞻的方法有助于持续分析数据源,寻找可能显示性能问题的模式和异常,如响应时间微小的变化、错误率轻微增加或与预期行为的任何其他偏差。然后,可观察性启动全面调查,以了解问题的根本原因并采取纠正措施。

固定仪表板与临时查询

监控系统通常拥有预设的仪表板,用于展示一系列预定义的指标和性能数据。现代的监控工具允许配置特定的指标和数据点,这些被认为对于跟踪系统运行状况至关重要。基础指标的选择通常基于对系统历史和行业最佳实践的理解。虽然固定仪表板能有效地回答已知问题,但它们缺乏灵活性来解决不可预见或复杂问题,并且可能无法提供进行有效调查所需的数据点。

相反,可观察性提供了一种动态、实时的方法来查询系统性能数据。这些即时查询可以根据特定的、与上下文相关的问题进行定制。这些查询的技术基础在于其能够分析来自不同来源的大量数据,包括指标、日志和追踪的丰富数据集。这种灵活的查询功能为解决新问题或意外问题提供了宝贵的灵活性。当出现以前未见过的问题时,用户可以创建自定义查询以提取相关数据进行详细分析。

下面的比较表强调了每组关键绩效指标 (KPI) 如何与基本理念保持一致,以及监控和可观察性如何有助于系统管理: 

这份表格整理了监控与可观察性的关键绩效指标:

关键绩效指标 监控 可观察性
主要目标 确保系统在设定参数内运行 了解系统行为并识别异常
数据的性质 指标 指标、日志、跟踪
关键指标 CPU 使用率、内存使用率、网络延迟 错误率、延迟分布、用户行为
数据采集方法 预定义数据点 动态数据点
范围 反应式:解决已知问题 主动:探索已知和未知问题
视觉表现 固定仪表板 即席查询、动态仪表板
警报 基于阈值的 基于异常
测量尺度 通常是单维度指标 多维度指标

结论

当谈及永久性的可观察系统时,它的主动性是其优势之一。然而,要充分利用可观察性的潜力,我们必须收集正确的数据——这些数据能够解读可预测和不可预测的生产挑战。文化应该强调改进应用程序的工具。建议的方法是建立一个堆栈,可以适应与应用程序性能相关的任何查询。

还要注意,可观察性是一个持续发展的过程,而不是一次性的设置。随着您的应用程序的扩展和变化,您的仪器设施也应随之调整。这种方法可以确保查询(无论是探索常规操作还是处理意外异常)都能够得到经过微调的响应式可观察性框架提供的明智回应。

标签:系统,查询,指标,监控,敏捷,观察,数据
From: https://blog.51cto.com/FunTester/9149572

相关文章

  • 作为项目经理,敏捷ACP有必要考吗?
    ACP®(AgileCertifiedPractitioner)是指敏捷项目管理人士(人事)资格认证。由美国项目管理协会(PMI®)举办的敏捷项目管理专业人员(ACP®)认证考试。PMI-ACP®认证验证了从业人士理解、应用敏捷原则及在项目上实践的能力。它与其他认证不同在于它要求敏捷培训、敏捷项目工作经验以及包含......
  • 优化业务系统运维管理:实现更智能的信息化业务系统监控与决策
        在当今高度信息化的时代,业务管理已成为企业成功的关键因素。为了更好地满足不断变化的市场需求,提高企业运营效率,我们推出了一款全新的业务管理工具——监控易。这款工具将助力企业实现更高效、更智能的业务监控与决策。一、业务系统运维列表:全面掌握业务状态    ......
  • 云平台:资源监控与业务运行保障
        随着云计算的普及,企业对于云资源的管理和监控需求日益增长。云平台作为企业云资源的管理和监控工具,能够全面了解云资源使用情况、业务运行状况,并及时收到异常报警做出反应,保障应用系统顺畅运行。本文将对云平台的功能和优势进行详细介绍。一、云平台概览    云平......
  • LiveNVR监控流媒体Onvif/RTSP常见问题-如何配置快照目录快照存储默认目录目录如何配置
    LiveNVR监控流媒体Onvif/RTSP常见问题-如何配置快照目录快照存储默认目录目录如何配置?1、快照目录2、指定快照目录3、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务1、快照目录部署LiveNVR后,配置通道上线后,会在LiveNVR部署的服务器里面存储对应的最新快照,默认的快照目录是LiveNVR解......
  • 引领流量管理变革:实现高效、智能的网络监控与优化
        在当今高度信息化的时代,网络流量管理已成为企业数据分析和决策的关键环节。为了更好地满足不断变化的市场需求,提高企业运营效率,监控易推出的流量管理模块,将助力企业实现更高效、更智能的流量监控与优化。一、流量监控:实时掌握网络流量动态    监控易的流量监控功......
  • TuGraph Analytics作业监控面板:运行时组件上的高效分析工具
    作者:丁一背景TuGraphAnalytics作业部署到K8S集群之后,通常会启动多个pod(一个master、一/多个driver、多个container)。用户很难判断作业当前运行的进度如何,也不能通过pod的状态来判断内部进程的状态。无论是查看进度、查看日志、性能分析,都需要到每一个pod中进行对应的操作,运维成本......
  • 设置观察点
    测试代码#include<cstdint>#include<thread>intg_v=0;voidthread_func1(){for(inti=1;i<100;++i){if(i%4==0)++g_v;}}voidthread_func2(){for(inti=1;i<100;++i){if(i%2==0)g_v++;}}......
  • 敏捷研发管理流程及示例-Leangoo领歌|永久免费的敏捷开发工具
    ​ Leangoo领歌是一款永久免费的专业的敏捷开发管理工具,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。Leangoo领歌上手快、实施成本低,可帮助企业快速落地敏捷,提质增效、缩短周期、加速创新。Leangoo领歌区别于传统项目管理软件,项目的需求......
  • 智能分析网关V4太阳能风光互补远程视频智能监控方案
    一、背景需求在一些偏远地区,也具有视频监控的需求。但是这类场景中,一般无法就近获取市电,如果要长距离拉取市电,建设的成本非常高且长距离传输有安全隐患,因此风光互补远程视频监控方案的需求也较多。利用风光电转化原理为偏远或无电区域的视频监控设备提供电力供应,从而满足偏远地区......
  • 智能视频监控技术在旅游业中如何发挥最大作用,助力旅游业发展
    随着“南方小土豆勇闯哈尔滨”的词条霸榜热搜,大众旅游热情再次点燃。最近哈尔滨游客爆满的情况,极易发生游客迷路、景区瘫痪、交通堵塞等情况,当地有关部门的压力不言而喻。对于节假日或者“破天富贵”、“报复性旅游”的情况,景区和城市该如何应对呢? 一、方案概述旅游业智能......