监控、跟踪和分析之间有什么区别?

监控、跟踪和分析之间有什么区别?

我经常看到这三个词,但不明白它们之间的确切区别。例如,收集 CPU 利用率通常称为分析,也可以归入性能监控。它们之间有什么(细微的)区别?

答案1

这是我使用这些词的方式。其他人可能有其他或不同的用法。根据手头的工作,我将以不同的方式使用这些术语。开发团队和运营团队有不同的需求和用法。

监控就是监控。通常它是持续进行的,最好是自动化的。开源工具,如MuninNagiosMRTG都属于这一类。还有很多商业工具。我也会将sar持续运行的工具归入这一类别,但通常不会监控其结果。监控工具可用于在受监控资源高于或低于触发水平时触发警报。许多监控工具在异构环境中运行良好。

分析通常针对特定程序进行,以查看哪些代码占用了最多的资源。这通常是 CPU 时间,但也包括内存、I/O 和执行(挂钟)时间。它通常用于识别要优化的候选代码。分析工具往往依赖于语言和/或平台。

另一种分析方法是使用日志和/或监控数据。这是使用情况分析,可以出于多种原因进行。我还没有找到很多可以做到这一点的工具。

我使用几种不同的跟踪方式。最常见的是跟踪网络路由。根据网络和防火墙设置,可以使用各种工具,效果或多或少不同。其中大多数工具的名称或描述中都有 traceroute。

程序跟踪是跟踪程序的执行。这通常在测试情况下完成。这可以通过多种方式完成(按照我的使用和经验顺序):

  • 使用工具进行调用跟踪,strace查看调用了哪些代码。这有助于确定程序失败或未按预期响应的原因。
  • 跟踪级别日志记录,这取决于代码中包含的适当日志记录语句。大多数日志记录套件都支持此详细程度。跟踪级别日志记录往往代码覆盖率较差。我通常会根据需要添加它,并将其留在代码中以供将来使用。
  • 代码覆盖率跟踪记录了测试套件中执行了哪些部分的代码。这对于确定缺失的测试用例很有用。很难获得 100% 的代码覆盖率。正常流程的 100% 覆盖率应该可以实现。
  • 桌面检查:通过阅读代码来追踪代码。对于大型程序来说,这种方法用处不大,但却是识别单元测试的边缘情况和/或在缩小可能的来源范围后识别可能的问题的好方法。有些 IDE 和编辑器可以相对轻松地跟踪对实现代码的调用。
  • 实时调试;使用调试器跟踪运行时的代码执行情况。可以逐条跟踪执行情况,但如果问题是时间问题,则可能会被掩盖。可以将代码链接到当前指令的调试器很有帮助,但可能需要构建程序的调试版本。

答案2

在 SAP WEB 应用服务器中,我们可以定义以下三个关键字:

可以使用成熟的 CCMS 架构集成 Web 提供的监控、跟踪和分析技术以及其他 SAP 和外部系统提供的技术,这可以大大简化大型、分布式和异构安装的维护。

相关内容