关于应用性能监控的方法

核心基础设施监控(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技术栈也有助于快速诊断问题。


你可能感兴趣的:(云计算,监控,服务,苏宁公有云)