点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

应用性能监控方法一览

  • 2015-08-26
  • 本文字数:1696 字

    阅读完需:约 6 分钟

在基于云的服务中,正常运行时间应该是最为重要的运维指标之一。服务如果频繁地中断,不仅会导致正常使用的中断,还会对品牌带来负面影响。99.9% 或 99.99% 已经算不上高水准的高可用性了,用户期望的是 100% 的可用性。为了达到这一点,我们不仅需要遵循良好的设计模式并保持服务的可扩展性,同时还要保证硬件、应用服务器以及数据库服务器的健康运行。

近日,来自 Zephyr 的 CTO Shailesh Mangal 撰文总结了各种监控类型以及所需的工具。Zephyr 致力于为开发和QA 团队提供解决方案,帮助交付高质量的软件,他们所提供的企业级测试管理产品能够与各种工具集成,实现测试的实时管理。

在Shailesh Mangal 的文章中,他总结了核心基础设施监控、应用级别监控、微服务监控以及多租户日志监控的工具以及各自的指标,为我们进行应用的全方位监控提供了指导。

核心基础设施监控(Core Infrastructure Monitoring,CIM

在目前的云基础设施中,出现硬件故障是难以避免的。核心基础设施监控会探测硬件瓶颈相关的早期迹象并捕获硬件故障信号,在出现更大的问题之前对其进行应对。基础设施监控的范围包括机器的健康状况、CPU 使用、内存消耗以及网络带宽,基于这些监控信息,能够判断基础设施的当前状态,从而进行必要的扩展。

有众多的工具都能帮助我们获取硬件的健康状态。在大多数情况下,托管提供商(如 Amazon AWS Heroku )的工具基本上就能满足这种监控的需要。

CIM 的指标包括:

  • CPU 的平均使用率
  • CPU 峰值的持续时间
  • 内存的平均使用情况
  • 带宽的输入输出情况

应用级别监控(Application Level Monitoring,ALM

应用级别的监控涉及到监控各种服务器的状态,如数据库服务器、应用服务器、分析服务器以及 Hadoop 集群,而要监控的参数则是与应用或工具相关的。

应用监控方面有不少伟大的工具,如 Datadog New Relic

应用监控的指标包括:

  • JVM 进程的内存
  • 内部线程的数量
  • 磁盘 IO
  • 索引的读取 / 写入操作

微服务监控(Micro Service Monitoring,MSM

微服务是现代云架构的组成部分,是实现水平扩展的关键。不管你运行的是传统的单块系统还是设计良好且组织精密的微服务,这些系统都会有不同的 API 端点,遵循不同的协议,满足不同的 SLA 需求。微服务监控就是要监控每个服务的吞吐量和性能,进而确保在任何时间都能满足 SLA 的需求。这种类型的监控一般都需要对应用进行 instrument 操作,让 instrumentation 是可配置的,通过收集器(collector)收集应用的状态,并阶段性地将这些状态发送到永久存储、分析器和预警系统中。此类监控往往会产生大量的数据,因此有可能会影响到性能,因此需要仔细设计。

微服务监控的工具方面,存储引擎可以选择 GraphiteDB InfluxDB ,可视化工具可以选择 Kibana Grafana

微服务监控的指标包括:

  • 请求所需的最大时间
  • 请求所需的平均时间
  • 每分钟请求的平均速度
  • 每天峰值的请求速度

多租户日志监控(Multitenant Log Monitoring,MLM

对于多租户部署的系统来讲,很大的一个挑战就是监控日志并推断系统的内部情况,或者当出现问题时识别出根本的原因。无数的客户端会产生大量的日志,因此对于日志隔离来说,有唯一的标识(如 tenantId)是第一步。除此之外,日志还需要根据请求分组,如果请求要跨多个服务时,这一点尤为重要,每个服务都产生一些日志信息将会有助于识别问题。

多租户日志监控中有非常经典的工具,也就是 ELK( Elasticsearch , Logstash , Kibana )技术栈。

多租户日志监控的指标包括:

  • 每个租户的日志
  • 每个请求的日志
  • 每天总的错误数量

总而言之,好的监控要涉及到系统各个方面,从硬件、应用再到服务。如果需要构建多租户应用的话,使用配置恰当的 ELK 技术栈也有助于快速诊断问题。

目前,随着云服务和移动应用的发展,在国内外APM(Application Performance Management)相关的服务得到了空前的关注,希望Shailesh Mangal 的这篇文章能够帮助读者对该领域有一个宏观的了解和掌握。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注 我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-08-26 19:028927

评论

发布
暂无评论
发现更多内容

行云创新完成B轮融资,阿里云独家投资

行云创新

阿里云 云原生 投资

面试题:JVM在Java堆中对对象的创建、内存结构、访问方式

java小李

java 14 sping

架构实战营-模块三

Cingk

请谈下Android消息机制,成功拿下大厂offer

欢喜学安卓

android 程序员 面试 移动开发

DeFi智能合约DAPP开发|DeFi项目源码

Geek_23f0c3

DeFi去中心化系统开发 DAPP智能合约交易系统开发

GitHub标星139K的:“嵌入式Linux系统开发教程”

白亦杨

淘宝一面:说一下 Spring Boot 自动装配原理呗?

java小李

面试 java 14 sping

携生态伙伴展示AI计算盒参考设计最新成果 英特尔点亮智能边缘广阔机遇

新闻科技资讯

stack overflow 问题分类

毛显新

tensorflow

聊聊百度搜索背后的故事

程序员鱼皮

Java 搜索引擎 数据结构 算法 后端

拨云开雾!阿里面试官力荐Java开发必看的操作系统底层原理PDF

Java架构追梦

Java 阿里巴巴 架构 面试 操作系统

Recommending movies: retrieval

毛显新

tensorflow 推荐系统

Vue进阶(九十四):自定义组件

No Silver Bullet

Vue 自定义组件 7月日更

FBI 警告称,网络犯罪分子可能以 2021 年东京奥运会为目标!

郑州埃文科技

被转载10W次的:Java小白系统资料和职业规划路线

java小李

java基础

速来围观!大佬把Java基础核心知识整理成了PDF版

java小李

Java开发手册 Java 开发

向大佬学习!「mybatis查询匹配机制」,手动点赞

java小李

java 14 Mybati

幸福的人在当下就活出了幸福的样子|靠谱点评

无量靠谱

DAPP智能合约开发|智能合约搭建

Geek_23f0c3

区块链 智能合约 DAPP智能合约交易系统开发 DAPP系统开发

对象存储手把手教三 | 数据分段上传

QingStor分布式存储

对象存储 分布式存储 数据传输

深度融合,云管理平台助推政府实现“最多跑一次”改革

BoCloud博云

云计算 云管理平台 云管理

如何借用第三方APM工具, 为移动应用保驾护航

友盟全域数据

APM

华为助力高校释放能量,加速中国从开源使用大国向贡献大国转变

科技热闻

LeetCode题解:456. 132 模式,n平方暴力,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

被面试官问的Android问题难倒了,深度集成!

欢喜学安卓

android 程序员 面试 移动开发

机器学习- 吴恩达Andrew Ng Coursera学习总结合集 John 易筋 ARTS 打卡 Week 57

John(易筋)

ARTS 打卡计划

大学四年Java学习路线规划,所有私藏资料我都贡献出来了

java小李

spring Java web

应用性能监控方法一览_DevOps_张卫滨_InfoQ精选文章