Sentry 开发者贡献指南 - SDK 开发(性能监控:Sentry SDK API 演进)

内容整理自官方开发文档

本文档的目标是将 Sentry SDK性能监控功能的演变置于上下文中。
我们首先总结了如何将性能监控添加到 SentrySDK
然后我们讨论 identified issues(已确定的问题) 吸取的经验教训以及解决这些问题的举措。

介绍

早在 2019 年初,Sentry 就开始尝试向 SDK 添加跟踪功能。PythonJavaScript SDK 是设计和开发第一个概念的测试平台。
概念验证于 2019 年 4 月 29 日 发布
并于 2019 年 5 月 7 日交付给 SentryPythonJavaScript 是显而易见的选择,因为它们允许我们试验检测 Sentry 自己的后端前端

请注意,上述工作与 OpenCensus 和 OpenTracing 合并形成 OpenTelemetry 是同时代的。SentryAPISDK 实现借鉴了 OpenTelemetry 1.0 之前版本的灵感,并结合了我们自己的想法。
例如,我们的 Span 状态列表与 2019 年底左右在 OpenTelemetry 规范中可以找到的匹配。

使用 API 后,性能监控支持随后扩展到其他 SDKSentry 的性能监控 解决方案于 2020 年 7 月普遍可用。OpenTelemetry 的跟踪规范 1.0 版于 2021 年 2 月发布。

我们最初的实现重用了我们现有的错误报告机制:

  • Event type 扩展了新字段。 这意味着我们可以节省时间并快速开始向 Sentry 发送事件,而不是设计实现全新的摄取管道,这一次,不是 error,而是一种新的 transaction 事件类型。
  • 由于我们只是发送一种新型事件,因此也重用了 SDK 传输层。
  • 由于我们共享摄取管道(ingestion pipeline),这意味着我们共享存储以及发生在所有事件上的处理的许多部分。

我们的实现演变成明确强调 TransactionSpan 之间的区别。部分原因是重用 Event 接口的副作用。

Transaction 与客户产生了良好的共鸣。
他们允许突出显示代码中的重要工作块,例如浏览器页面加载或 http 服务器请求。
客户可以查看和浏览 transaction 列表,而在 transaction 中,span 为更细粒度的工作单元提供详细的时间安排。

在下一节中,我们将讨论当前模型的一些缺点。

已确定的问题

虽然统一 SDK 架构(hubclientscope)
transaction ingestion 模型的重用有其优点,但经验揭示了一些我们将其分为两类的问题。

第一组与 scope 传播有关,本质上是确定 当前 scope

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值