首页 > 编程问答 >在 Observability 中直接创建新跨度时,通常会在什么情况下创建?

在 Observability 中直接创建新跨度时,通常会在什么情况下创建?

时间:2024-06-04 15:47:56浏览次数:27  
标签:open-telemetry micrometer spring-micrometer micrometer-tracing observability

我正在使用 Springboot + OpenTelemetry + Micrometer 实现可观察性。 我仍然不确定何时创建自己的跨度是个好主意。 你们通常在什么时候创建自己的跨度?


在使用 Spring Boot + OpenTelemetry + Micrometer 实现可观测性时,确定何时创建自定义跨度是一个常见的问题。以下是一些需要考虑的因素:

何时创建自定义跨度:

  • 需要对特定代码块进行更细粒度的追踪: OpenTelemetry 和 Spring Boot 会自动追踪许多操作,例如 HTTP 请求和数据库调用。但是,如果想追踪特定方法、代码块或业务逻辑的性能,则应创建自定义跨度。
  • 需要添加特定信息以帮助调试: 自定义跨度允许添加属性,例如用户 ID、订单 ID 或任何其他有助于调试和分析问题的相关信息。
  • 追踪跨多个组件或服务的复杂操作: 对于涉及多个服务或组件的复杂操作,创建跨度可以帮助跟踪整个流程并识别性能瓶颈。
  • 需要与第三方库或框架集成,而这些库或框架不提供自动仪器: 对于没有内置 OpenTelemetry 支持的库,可以创建自定义跨度来跟踪它们的性能。

一些常见的自定义跨度使用场景:

  • 追踪批处理作业中每个项目的处理时间。
  • 追踪复杂业务流程中每个步骤的执行时间和结果。
  • 追踪与外部 API 交互的性能,包括请求和响应详细信息。
  • 追踪缓存命中率和缓存操作的延迟。
  • 追踪消息队列的生产者和消费者操作。

创建自定义跨度的最佳实践:

  • 保持跨度名称简短且具有描述性: 使用简洁的名称,例如 "processOrder" 或 "sendMessage"。
  • 添加相关属性: 包含有助于调试和分析的上下文信息,例如用户 ID 或订单 ID。
  • 使用语义约定: 遵循 OpenTelemetry 的语义约定,以便的跟踪数据可以与其他工具和系统互操作。
  • 不要过度使用自定义跨度: 仅在需要更细粒度的追踪或添加特定信息时才创建它们。

总结:

创建自定义跨度的决定取决于的特定需求和目标。通过仔细考虑需要追踪的内容以及需要收集哪些信息,可以确保的可观测性策略能够有效地识别和解决性能问题。

标签:open-telemetry,micrometer,spring-micrometer,micrometer-tracing,observability
From: 78573981

相关文章

  • Observability:使用 Elastic AI Assistant 和 APM 分析 OpenTelemetry 应用程序
    作者:来自Elastic BahubaliShettiOpenTelemetry正在迅速成为云原生计算基金会(CNCF)内最广泛的项目,拥有与Kubernetes一样多的提交,并获得了客户的广泛支持。许多公司正在采用OpenTelemetry并将其集成到他们的应用程序中。Elastic®提供了有关为应用程序实施OpenT......
  • springboot-micrometer潜在oom问题解决办法
    在服务中起一个监听Prometheus拉取的线程,在拉取完成之后清理调meterMap中内容比较多的tag,我这边是清理调gateway.requests.代码如下:@ComponentpublicclassPrometheusMeterRegistryFactory{@ResourceprivatePrometheusMeterRegistryprometheusMeterRegistry;......
  • Observability Primer
    在深入研究OpenTelemetry之前,首先了解一些核心概念很重要。WhatisObservability?Observability 让我们从外部了解一个系统,让我们在不了解其内部工作的情况下提出有关......