菜单
文档breadcrumb arrow Grafana 文档breadcrumb arrow 数据源breadcrumb arrow Pyroscopebreadcrumb arrow Profiling 和 Tracing 如何协同工作
企业版 开源

Profiling 和 Tracing 如何协同工作

剖析 (Profiles)、持续剖析 (continuous profiling) 和分布式调用链 (distributed traces) 都是用于改进应用性能和可靠性的工具。然而,每种工具都有其自身的优点和缺点,选择适合的工具并理解何时同时使用它们非常重要。

剖析

剖析深入探讨应用在代码层面的性能,突显资源使用情况和性能瓶颈。

使用场景在开发、主要发布期间,或注意到性能异常时。
优势
  • 业务层面:通过增强应用性能提升用户体验。
  • 技术层面:清晰洞察代码性能和需要改进的领域。
示例开发者在注意到应用性能缓慢时使用剖析,识别出 CPU 占用较高的函数,并进行优化。

持续剖析

持续剖析提供持续的性能洞察,捕获长期趋势和间歇性问题。

使用场景主要用于生产环境,特别是高优先级应用。
优势
  • 业务层面:主动解决低效问题,可能节省成本。
  • 技术层面:突显性能趋势和随时间推移可能出现的内存泄漏等问题。
示例持续剖析一个月的数据显示内存消耗不断增加,暗示可能存在内存泄漏。

分布式调用链

跟踪跨越多个服务的请求,揭示交互和服务依赖关系。

使用场景对于微服务等请求涉及多个服务的系统至关重要。
优势
  • 业务层面:更快的解决问题速度,减少停机时间,增强客户信任。
  • 技术层面:系统结构的全局视图,揭示瓶颈和服务间依赖关系。
示例在电商领域,用户的结账请求可能涉及多个服务。调用链描绘了这条路径,精确指出时间花费最多的地方。

调用链和剖析的结合威力

结合使用时,调用链和剖析是理解系统和应用性能的强大工具。

使用场景为了获得从系统到代码的全面洞察,特别是诊断跨服务和代码库的复杂问题时。
优势
  • 业务层面:减少停机时间,优化用户体验,保障营收。
  • 技术层面
    • 全局视角:调用链定位瓶颈服务,而剖析深入分析负责的代码段。
    • 端到端洞察:可视化请求的完整旅程以及各个代码部分的性能。
    • 高效诊断:调用链识别服务延迟;剖析精准定位其原因,无论是数据库查询、API 调用还是特定的代码低效。
示例调用链揭示了支付服务的延迟。结合剖析发现,一个特定的函数在进行第三方验证调用时是罪魁祸首。这一洞察指导了优化工作,提高了系统效率。