应用程序性能监控(APM)的解决方案

news2024/11/19 9:33:41

随着技术的不断发展,APM 监控和可观测性的重要性怎么强调都不为过,应用程序已成为业务运营的支柱。随着组织越来越依赖数字解决方案来推动其流程并与用户互动,确保最佳性能和可用性变得至关重要。这超越了系统正常运行时间,深入研究了应用程序行为、响应时间和资源利用率的复杂细节。全面的方法对于识别瓶颈、优化用户体验以及在问题影响最终用户之前主动解决问题至关重要。

应用程序监控最佳实践对于确保软件应用程序的无缝和最佳运行至关重要,通过实施这些实践,组织可以主动识别和解决性能问题,防止中断并优化用户体验。此外,APM 最佳实践为明智的决策、资源优化和持续改进提供了宝贵的数据,因此对于在动态和苛刻的环境中保持现代应用程序的性能和竞争力至关重要。

应用程序性能监控(APM)解决方案

让我们看一下应用程序性能监控(APM)的最佳实践,这些最佳实践把监控策略从被动的解决问题转变为主动的性能优化,确保组织的应用程序提供最重要的用户体验和业务成果:

  • 定义绩效目标
  • 确定监控的关键指标
  • 消除潜在的工具蔓延
  • 自动执行修复和事件响应
  • 考虑最终用户体验
  • 持续改进和优化

在这里插入图片描述

定义绩效目标

在深入研究监控的技术复杂性之前,定义您努力的“原因”至关重要。将绩效目标与业务需求和用户期望产生共鸣的明确、可衡量的目标保持一致。是否打算通过更快的页面加载时间提高转化率?是否希望将现有的手动任务自动化?努力满足SLA?通过建立这些可量化的目标,能够确保监控策略侧重于直接影响有形结果的数据点,而不仅仅是虚荣的指标。 接下来,需要利用 MELT(指标、事件、日志、跟踪)数据为应用程序行为建立基线,这涉及全面了解应用程序在典型条件下的正常操作参数,通过在稳定和预期活动期间仔细分析和记录关键绩效指标,组织可以创建一个基线,作为检测异常的参考点。

确定监控的关键指标

在应用程序性能监控方面,需要注意各种各样的指标。以下是要关注的一些最重要的指标:

传统应用程序性能监控指标
  • 应用程序可用性/正常运行时间:用户希望应用程序在需要时可用,利用提供对应用程序性能和即时警报的深入可见性的监控工具将帮助管理员防止潜在的中断。
  • 错误率:记录导致失败的请求百分比将有助于识别影响用户体验的问题并确定其优先级,跟踪错误率可以及早发现应用程序中的潜在问题。
  • 事务:监视事务对于在请求遍历应用程序的各个组件时获得对请求的精细见解至关重要。它使组织能够识别瓶颈、优化性能并确保无缝的用户体验,如果不进行事务跟踪,就会在处理复杂问题时出现问题,因为对不同服务之间的请求流的可见性有限。
基础架构指标
  • 数据库查询:跟踪数据库查询可以检测异常行为,例如查询执行时间突然激增或并发查询数量过多。通过对数据库性能、查询执行和建立基线进行定期审查,可以比较一段时间内的趋势。
  • 容器:这包括了解容器启动所需的时间、对单个容器性能的可见性以及其他 KPI,如节点、Pod、连接计数等。实施自动运行状况检查和警报机制将帮助您检测和响应容器故障或性能下降。
  • 云支出:跟踪云支出非常重要,尤其是在公有云中托管应用程序时,这将帮助组织避免超支。但是,需要监视的指标类型将取决于你使用的云服务以及工作负载在其中的预配方式。
  • 资源利用率:通过监视资源利用率,可以深入了解 CPU、内存、磁盘和网络资源的使用情况,了解历史数据有助于预测未来需求、优化基础设施支出并更有效地分配资源。
DevOps 指标
  • 平均恢复时间(MTTR):MTTR 是确定计划外停机期间响应流程需要改进的领域的关键指标,为了有效地衡量 MTTR,必须确定问题何时开始以及何时成功修复。此外,了解哪个部署解决了事件并分析用户体验数据有助于评估服务还原的有效性。
  • 部署频率:频繁的部署可以快速交付错误修复、新功能和改进。定期测量部署频率可评估团队适应流程变更的效率,并评估部署速度随时间推移的改进情况。
  • 生产周期:生产周期是从代码提交到在生产环境中部署的持续时间,涵盖整个开发和交付管道。自动化测试和 DevOps 流程以及在多个开发环境中实施测试将有助于优化交付周期。
  • 变更失败率:这衡量了需要修复 bug 的已部署生产故障的百分比。为了降低变更失败率,组织应通过确保全面的测试覆盖率、在适用的情况下采用自动化、进行彻底的回归测试以及在与生产条件非常相似的环境中实施测试来加强测试实践。

消除潜在的工具蔓延

不同的团队,每个团队都有独特的职责,通常使用多种工具来满足他们的特定需求。例如,DevOps 团队专注于简化和自动化开发周期。而站点可靠性工程师 (SRE) 则专注于确保应用程序、生产环境中的服务以及最佳网站性能的可靠性。虽然每种工具都为各个团队服务,但不同工具的激增阻碍了整体可见性并使问题解决复杂化。

在这种情况下,互操作性成为 APM 工具中不可协商的功能。虽然一次更换组织中的多个工具可能不切实际,但有效的 APM 解决方案应该提供足够的功能来替换至少一个子集并与其他工具无缝集成。消除工具蔓延已成为应用程序性能监控最佳实践之一,通过整合见解、降低复杂性和促进更精简、更高效的监控流程来增加大量价值。

自动执行修复和事件响应

当发生重大事件时,手动故障排除可能会适得其反,这正是自动化派上用场的地方。对于组织来说,确定需要自动化的特定场景和事件至关重要,例如在流量高峰期间进行资源扩展或在发生故障时重新启动服务。定义这些目标将确保自动化工作与组织目标和优先事项保持一致。为了最大限度地发挥自动化的优势,应该遵循以下步骤:

  • 提高检测能力:需要能够自动检测异常,简化集成过程以连接警报、事件和事件的所有数据源,并验证警报以减少干扰。
  • 诊断和了解问题:这包括更深入地了解受影响的组件,获得更广泛的背景信息,并防止问题升级。
  • 解决事件并简化响应:需要能够在尽可能少的人工参与下自动触发修正操作。此外,需要将问题重定向到最有能力解决这些问题的人。

考虑最终用户体验

最终用户体验不仅是应用程序性能监控的一大优势,而且是一个基本支柱。无论服务器响应时间或 CPU 利用率多么出色,如果用户由于糟糕的数字体验而点击离开,那么所有技术统计数据都毫无意义。需要能够实时了解用户行为、偏好和潜在痛点,跟踪他们跨地域的旅程,并了解瓶颈所在。

通过强大的最终用户体验策略,将能够了解此问题是由于部署新功能或并发用户会话后加载时间较慢所致。可以遵循以下方法:

  • 设置综合事务监控:在综合事务中模拟真实的用户行为,以创建逼真的场景。合并用户路径、会话长度和交互的变化,以反映实际用户参与的多样性,部署来自不同地理位置的综合事务,以在全球范围内评估应用程序的性能。
  • 监控和优化真实用户指标:通过捕获一组不同的指标(包括页面加载时间、呈现性能、事务成功率和错误率)来实施真实用户监控(RUM)的整体方法。确定对用户满意度和业务目标产生重大影响的关键路径并确定其优先级,将优化工作引导到这些优先领域。
  • 采用综合方法:将后端基础架构指标与前端性能相关联,这将使管理员全面了解到底发生了什么。在后端和前端开发团队之间建立持续的反馈循环,以促进协作和知识共享,此迭代过程可确保在解决性能问题、优化应用程序和维护无缝用户体验方面做出统一努力。

持续改进和优化

业务应用程序,就像它们所支持的业务一样,必须经历不断的发展,才能有效地应对新的挑战并利用新出现的机会,参与应用程序及其底层基础设施和服务的持续升级和优化对于保持敏捷性和响应性至关重要。应用程序监控不是一次性任务,而是一个需要适应性和定制性的持续过程,应用程序性能监视中的一些最佳实践包括:

  • 定期审查和更新监视配置,以符合不断变化的业务目标和用户需求,定制是关键,因为量身定制的监控解决方案可以更好地满足应用的特定需求。
  • 通过实施自动警报来保持主动性,这些警报可以实时通知团队潜在问题,从而实现快速干预。
  • 定期进行绩效评估,以确定需要改进的领域,从而实现数据驱动的决策。

Applications Manager 提供深度应用程序性能监控、基础架构监控和数字体验监控,所有这些都来自一个控制台,管理员将能够获得对应用程序性能的无与伦比的洞察力,无论是在本地还是在云中。能够诊断问题、深入了解其根本原因、自动执行操作并提供完美的用户体验。

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

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

相关文章

拼多多商品详情接口数据采集

拼多多商品详情接口数据采集是一个相对专业的任务,通常涉及到使用API接口或第三方采集工具等技术手段。以下是一些基本步骤和注意事项,供您参考: 请求示例,API接口接入Anzexi58 申请开发者账号:如果您打算使用API接口…

政务云安全风险分析与解决思路探讨

1.1概述 为了掌握某市政务网站的网络安全整体情况,在相关监管机构授权后,我们组织人员抽取了某市78个政务网站进行安全扫描,通过安全扫描,对该市政务网站的整体安全情况进行预估。 1.2工具扫描结果 本次利用漏洞扫描服务VSS共扫…

基于Springboot的集团门户网站(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的集团门户网站(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+纯verilog图像缩放+多路视频拼接,提供8套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI接收发送本方案的SDI接收图像缩放应用本方案的SDI接收HLS图像缩放HLS多路视频拼接应用本方案的SDI接收OSD动态字符叠加输出应用本方案的SDI接收HLS多路视频融合叠加应用本方案的SDI接收GTX 8b/10b编解…

KeePass 密码库坚果云授权同步(免费)

前言介绍 KeePass是一款开源的密码管理工具,可以帮助你安全地存储和管理各种密码和敏感信息。 下载安装 下载KeePass:官网,下载KeePass的安装文件。根据你的操作系统选择适用的版本,比如Windows、macOS或Linux。 安装KeePass&a…

神经网络处理器优化设计(一)

神经网络处理器优化设计,涉及到一些特殊和通用处理流程,一是降低硬件成本,二是提高性能。 一 跨层流水线调度 这里主要针对深度可分离卷积,将Pointwise conv与Depthwise卷积并行处理,好处是,减小整体流水时…

开源生态与软件供应链研讨会

✦ 日程安排 开源生态与软件供应链研讨会 时间: 2024年3月12日(星期二)13:30 – 17:00 地点: 复旦大学江湾校区二号交叉学科楼E1021 联系人: 陈碧欢(bhchenfudan.edu.cn) 点击文末“阅读原文”或扫描下方二维码进入报名通…

cms垃圾回收

cms垃圾回收 CMS概述CMS收集器整体流程初始标记并发标记重新标记并发清除 CMS卡表什么是卡表(card table)什么是mod-union table CMS概述 CMS(Concurrent Mark Sweep)收集器是Java虚拟机中的一种老年代(old Generation)垃圾收集器,他主要目标是减少垃圾收集时的应用…

Redis实现分布式锁源码分析

为什么使用分布式锁 单机环境并发时,使用synchronized或lock接口可以保证线程安全,但它们是jvm层面的锁,分布式环境并发时,100个并发的线程可能来自10个服务节点,那就是跨jvm了。 简单分布式锁实现 SETNX 格式&…

k8s关于pod

目录 1、POD 的创建流程 kubectl 发起创建 Pod 请求: API Server 接收请求并处理: 写入 Etcd 数据库: Kubelet 监听并创建 Pod: Pod 状态更新和汇报: 2、POD 的状态解析 1. Pending Pod 2. Running Pod 3. S…

【PRIVGUARD-privguard-artifact-main】代码学习(parser部分)

privguard-artifact-main:parser部分简述 1.abstract_domain.py (1)简介 实现PrivGuard中的抽象域功能。PrivGuard是一个旨在确保Python程序符合特定隐私策略的工具。代码中定义了两种类型的抽象域:闭区间格(ClosedIn…

霹雳学习笔记——6.1.2 ResNeXt

相比于ResNet,更新了block 效果:错误率低于ResNet,并且计算量一样。 对比卷积和组卷积,参数个数会变成1/g倍,g是分成了g组 最终输出的channel与卷积核的个数相同。 (好像是。。。好像之前听过这个&#xff…

【LeetCode热题100】73. 矩阵置零(矩阵)

一.题目要求 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 二.题目难度 中等 三.输入样例 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0…

文字弹性跳动CSS3代码

文字弹性跳动CSS3代码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面 下载地址 文字弹性跳动CSS3代码

Rust 构建开源 Pingora 框架可以与nginx媲美

一、概述 Cloudflare 为何弃用 Nginx,选择使用 Rust 重新构建新的代理 Pingora 框架。Cloudflare 成立于2010年,是一家领先的云服务提供商,专注于内容分发网络(CDN)和分布式域名解析。它提供一系列安全和性能优化服务…

4.MAC平台Python的下载、安装(含Python2.7+Python3.12双版本环境变量配置)——《跟老吕学Python编程》

4.MAC平台Python的下载、安装(含Python2.7Python3.12双版本环境变量配置)——《跟老吕学Python编程》)——跟老吕学Python编程 一、下载MAC版Python1.Python官网2.MAC版Python下载网址 二、在MAC安装Python1.在MAC安装Python2.阅读Python重要…

【Ubuntu-20.04】OpenCV-3.4.16的安装并对图片与视频处理

【Ubuntu-20.04】OpenCV-3.4.16的安装并对图片与视频处理 一、安装OpenCV-3.4.161.下载OpenCV-3.4.16安装包2.将安装包放到/home,并解压3.使用 cmake 安装 opencv4.配置环境5.查看 opencv 的版本信息 二、处理图片(一)创建文件夹 code &#…

【TB作品】MSP430,波形发生器,单片机,Proteus仿真

文章目录 题目效果梯形波100个点产生方法锯齿波100个点产生方法c代码和proteus仿真 题目 114 波形发生器的制作 设计要求 设计一个能产生正弦波、方波、三角波、梯形波、锯齿波的波形发生器。设置5个开关K1~K5(从 上到下),分别对应正弦波、方波、三角波、梯形波、锯齿波,按一下…

Redis中缓存和数据库双写数据不一致

先更新数据库,还是先更新缓存? 1.先更新数据库,再更新缓存 2.先更新缓存,再更新数据库 1.先更新数据库,再更新缓存 举个例子,比如【请求A】和【请求B】两个请求,同时更新【同一条】数据, 则…

分布式搜索引擎elasticsearch(2)

1.DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.1.DSL查询分类 Elasticsearch提供了基于JSON的DSL([Domain Specific Language](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html))来定义查…