发布 & 健康

了解如何配置 SDK 以向 Sentry 报告您的发布。

发布是部署到 环境 的代码版本。当您向 Sentry 提供发布信息时,您可以:

  • 确定新发布引入的问题和回归
  • 预测导致问题的提交以及谁可能负责
  • 通过在提交消息中包含问题编号来解决问题
  • 在代码部署时接收电子邮件通知

在初始化 SDK 时包含一个发布 ID(通常称为“版本”)。

发布名称不能:

  • 包含换行符、制表符、正斜杠 (/) 或反斜杠 (\)
  • 完全是句点 (.)、双句点 (..) 或空格 ( )
  • 超过 200 个字符

该值可以是任意的,但我们建议使用以下命名策略之一:

  • 语义化版本控制package@versionpackage@version+build(例如,my.project.name@2.3.12+1234
    • package 是项目的唯一标识符(例如,iOS 上的 CFBundleIdentifier,Android 上的 packageName
    • version 是类似 semver 的结构 <major>.<minor?>.<patch?>.<revision?>-<prerelease?>(例如,iOS 上的 CFBundleShortVersionString,Android 上的 versionName
    • build 是标识应用程序迭代的编号(例如,iOS 上的 CFBundleVersion,Android 上的 versionCode
  • 提交 SHA:如果您使用版本控制系统(如 Git),建议使用标识哈希(例如,提交 SHA,da39a3ee5e6b4b0d3255bfef95601890afd80709)。您可以让 Sentry CLI 自动确定此哈希值,支持的版本控制系统。了解更多内容,请参阅我们的 Sentry CLI 文档。

发布是组织级别的;使用项目特定的前缀以便于区分。

某些功能的行为取决于项目是否使用语义化版本控制或基于时间的版本控制。

  • 回归检测
  • release:latest

我们根据以下内容自动检测项目是使用语义化版本控制还是基于时间的版本控制:

  • 如果总发布数 ≤ 2:查看最近的发布。
  • 如果发布数为 3-9(包括):如果最近 3 个发布中的任何一个使用 semver,则项目使用 semver。
  • 如果发布数 ≥ 10:如果最近 3 个发布中的任何一个使用 semver,并且最近 10 个发布中有 3 个使用 semver,则项目使用 semver。

Copied
\Sentry\init([
    'dsn' => 'https://examplePublicKey@o0.ingest.sentry.io/0',
    'release' => 'my-project-name@2.3.12',
]);

如何将发布名称(或版本)提供给您的代码取决于您。例如,您可以使用在构建过程或初始启动时设置的环境变量。

设置发布名称会为每个事件打上该发布名称的标签。我们建议在发送带有该发布名称的事件之前,先通知 Sentry 关于新发布,因为这将解锁更多功能。了解更多内容,请参阅我们的 发布 文档。

如果您没有通知 Sentry 关于新发布,Sentry 将在第一次看到带有该发布 ID 的事件时自动在系统中创建一个发布实体。

配置 SDK 后,您可以安装一个仓库集成或手动向 Sentry 提供自己的提交元数据。阅读我们的 设置发布 文档,了解更多关于集成、关联提交以及在部署发布时通知 Sentry 的信息。