Metrics, Monitoring, and Alerting 介绍
什么是Metrics, Monitoring, and Alerting
什么是Metrics
度量代表资源使用或行为的原始测量数据,可以在整个系统中观察和收集。这些可能是操作系统提供的底层使用,也可以是与特定的功能或工作相关联的更高级别的数据,比如每秒服务的请求数。有些度量是相对于总容量表示的,而其他度量则表示为指示组件“繁忙程度”的速率。
度量很有用,因为它们提供了对系统行为和健康状况的洞察,尤其在进行聚合分析时。它们代表监控系统用于构建对环境的整体视图、自动响应变化并在需要时向人员发出警报的原始材料。度量是用于理解历史趋势、相关不同因素以及测量性能、消耗或错误率变化的基本数值。
什么是Monitoring
虽然度量代表系统中的数据,但监控是收集、聚合和分析这些值的过程,以提高对组件特性和行为的了解。来自环境各个部分的数据被收集到一个监控系统中,该系统负责存储、聚合、可视化,并在数值满足特定要求时启动自动响应。
首先,度量和监控之间的区别反映了数据和信息之间的差异。数据由原始、未经处理的事实组成,而信息通过分析和组织数据来建立上下文,提供价值。监控获取度量数据,对其进行聚合,并以各种方式呈现,使人们能够从个别信息中提取洞察力。
其次,监控系统通常提供数据的可视化。监控系统通常使用可配置的图形和仪表板来表示它们测量的组件。这使得通过查看显示屏可以理解系统内复杂变量或变化的相互作用。
例如,如果应用程序的error rates出现激增,Ops/Dev应该能够使用监控系统查明该事件是否与相关资源的容量耗尽相关。
什么是Alerting
报警是监控系统的响应组件,根据指标值的变化执行操作。报警定义由两个组件组成:基于指标的条件或阈值,以及在值超出可接受条件时执行的操作。
尽管监控系统在解释和调查方面非常有用,但完善的监控系统的主要好处之一是让DevOps脱离系统。报警允许定义指标,主动管理,同时依靠软件的被动监控来监视变化的条件。
响应报警的个人可以使用监控系统和相关的工具,如日志文件,调查问题的原因并实施解决翻干。
哪些信息需要被跟踪和收集
Host-Based Metrics
在基础性能指标的层次结构底部是基于主机的指标。这些指标包括用于评估单个计Node健康或性能的任何内容,暂时不考虑其应用程序堆栈和服务。这主要包括操作系统或硬件的使用情况或性能,例如:
- CPU
- Memory
- Disk space
- Processes
Application Metrics
应用程序指标涉及到依赖于主机级资源的处理单位或工作,比如服务或应用程序。此级别的指标是应用程序健康、性能或负载的指标:
- Error and success rates
- Service failures and restarts
- Performance and latency of responses
- Resource usage
Network and Connectivity Metrics
网络和连接指标将是衡量对外可用性的重要指标,但对于跨越多台Server的任何系统,确保服务对其他Node可访问也是至关重要的
- Connectivity
- Error rates and packet loss
- Latency
- Bandwidth utilization
Server Pool Metrics
在规模上,服务池更好地表示为一组计算机执行工作并对请求做出足够响应的能力。这种类型的度量标准在许多方面只是应用和服务器度量标准的高级推断,但在这种情况下,资源是同质化的服务器,而不是组件。可能需要跟踪的一些数据包括:
- Pooled resource usage
- Scaling adjustment indicators
- Degraded instances
External Dependency Metrics
可能希望添加到系统中的其他度量标准与外部依赖关系有关。通常,服务提供状态页面或API以发现服务中断。在这个层面可能适用于跟踪的一些项目包括:
- Service status and availability
- Success and error rates
- Run rate and operational costs
- Resource exhaustion
影响选择监控内容的因素
- Resources available for tracking:根据人力资源、基础设施和预算,将不得不限制追踪的范围,以符合能够负担得起并能够合理管理的内容。
- The complexity and purpose of your application:应用程序或系统的复杂性可能会对选择跟踪的内容产生重大影响。对某些软件而言可能是至关重要的项目,在其他软件中可能根本不重要。
- The deployment environment:尽管健壮的监控对于生产系统最为重要,但测试和演示系统也会从监控中受益,尽管在严重性、粒度和整体测量指标方面可能存在差异
- The likelihood of the metric being useful:影响是否测量某个指标最重要的因素之一是它在是否有助于解决问题。每个额外跟踪的指标都会增加系统的复杂性并占用资源。数据的必要性也可能随时间而变化,需要定期重新评估。
- How essential stability is:简而言之,对于某些类型的个人或早期阶段的项目,稳定性和正常运行时间可能不是首要任务。
Metrics, Monitoring, and Alerting 系统具有重要的特性
- Independent from Most Other Infrastructure 独立的Infra资源
- Reliable and Trustworthy 可靠和值得信赖(数据准确,Metrics, Monitoring, and Alerting系统稳定运行)
- Easy to Use Summary and Detail Views 优秀的可视化能力
- Effective Strategy for Maintaining Historical Data 维护历史数据的有效策略(如短期细粒度,长期粗粒度)
- Able to Correlate Factors from Different Sources 能够关联不同来源的因素(如application及application所依赖的DB/Cache等指标的聚合)
- Easy to Start Tracking New Metrics or Infrastructure 轻松地加入新的Infra和Metrics
- Flexible and Powerful Alerting 除了可靠之外,灵活配置、自动化处理也是非常重要的报警能力