
系列
- 1 分鍾快速使用 Docker 上手最新版 Sentry-CLI - 創建版本
- 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps
- Sentry For React 完整接入詳解
- Sentry For Vue 完整接入詳解
- Sentry-CLI 使用詳解
- Sentry Web 性能監控 - Web Vitals
- Sentry Web 性能監控 - Metrics
- Sentry Web 性能監控 - Trends
目錄
- 創建一個 Sentry 項目
- Step 1: 創建項目
- Step 2: 創建警報規則
- 將 Sentry SDK 引入您的前端代碼
- 前置條件
- Step 1: 獲取代碼
- Step 2: 安裝
SDK - Step 3: 安裝並運行
demo app
- 捕捉你的第一個錯誤
- Step 1: 捕捉你的第一個事件
- Step 2: 處理錯誤
- 在錯誤中啟用可讀堆棧跟蹤
- Step 1: 准備構建環境
- Step 2: 創建
release並上傳source maps - Step 3: 嘗試您的更改 --- 生成另一個錯誤
- Step 4: 探索
release
- 啟用可疑提交
- Step 1: 集成您的
GitHub帳戶和存儲庫 - Step 2: 設置提交跟蹤
- Step 3: 可疑提交和建議受理人
- 更多信息
- Step 1: 集成您的
創建一個 Sentry 項目
Step 1: 創建項目
-
登錄您的
Sentry organization -
從左側導航菜單中選擇
Projects以顯示所有項目的列表 -
單擊
+ Create Project按鈕
注意:如果您的帳戶中沒有項目 --- 您可能會被重定向到入門向導以創建您的第一個項目。
- 根據您希望監控的代碼為您的項目選擇語言或框架——在本例中為
JavaScript。 - 給該項目一個
Name。 - 在
Set your default alert settings下,選擇i'll create my own alerts later。 - 為該項目分配一個
Team。

如果您尚未定義任何團隊(
Team),您可以選擇默認組織團隊(與您的Sentry組織同名的團隊)或單擊+按鈕創建新團隊。
- 單擊
Create Project。這會將您帶到配置頁面。通讀快速入門指南。
- 根據您希望監控的代碼為您的項目選擇語言或框架——在本例中為
-
復制
DSN key並將其放在手邊,因為我們會將密鑰復制到源代碼中。

DSN(或數據源名稱)告訴 SDK 將事件發送到何處,將它們與您剛剛創建的項目相關聯。
- 點擊
Got it!按鈕以創建項目。
Step 2: 創建警報規則
您可以為每個項目創建各種警報規則,並讓 Sentry 知道您希望在應用程序中發生錯誤時通知的時間(when)、方式(how)和對象(whom)。 警報規則(Alert rules)由條件(Conditions)和操作(Actions)組成,它們在滿足相關條件時執行。有關更多信息,請參閱 Alerts。 創建新項目時,您可以選擇使用警報規則創建它,該規則在第一次出現新問題時通知所有項目團隊成員(通過電子郵件)。 這意味着下次發生類似錯誤時,不會觸發通知,因為該錯誤不是“新的”。
在此步驟中,您將創建一個新的 Alert 規則,在每次(every time)事件發生時發出通知,即使它與已經存在的問題相關聯。在實際的場景中,您可能會添加額外的條件,因為您不希望每次在終端用戶瀏覽器的前端代碼中發生事件時都得到通知。
- 從項目下拉列表中,找到新項目並點擊齒輪圖標打開項目設置(
Project Settings)

-
單擊
Alerts以打開警報配置頁面 -
單擊
New Alert Rule

- 在
“New Alert Rule”表單中,選擇“Issue Alert”類型並輸入以下值

每次在所有環境(
All Environments)中通過郵件(
- 單擊
Save Rule以創建新規則
將 Sentry SDK 引入您的前端代碼
前置條件
Demo App 源代碼需要 NodeJS 開發環境來安裝和運行應用程序。確保您已准備好以下各項:
- Node and NPM
- NVM
Step 1: 獲取代碼
- 在 GitHub 上打開
frontend-monitoring示例代碼庫
- 單擊
Fork並選擇您希望將此存儲庫分叉到的目標GitHub帳戶

fork完成后,單擊Clone或download,然后復制存儲庫HTTPS URL

- 將分叉的存儲庫克隆到您的本地環境
> git clone <repository HTTPS url>
- 現在示例代碼在本地可用,在您首選的代碼編輯器中打開
frontend-monitoring項目
Step 2: 安裝 SDK
Sentry 通過在應用程序運行時中使用特定於平台的 SDK 來捕獲數據。要使用 SDK,請在源代碼中導入並配置它。 demo 項目使用 React 和 Browser JS。最快的入門方法是使用 JavaScript browser SDK 的 CDN 托管版本,但是,您也可以通過 NPM 安裝 browser SDK 。
- 打開
index.html文件(位於 ./frontend-monitoring/public/ 下)

請注意,我們在代碼中盡可能早地導入和初始化
SDK。初始化SDK時,我們提供所需的配置。唯一的強制配置選項是DSN key,但是,SDK 支持多個其他配置選項。有關更多信息,請參閱配置。
- 在
Sentry SDK配置中,輸入您從上一節創建的項目中復制的DSNkey 值。
Sentry.init({
dsn: "<PASTE YOUR DSN KEY HERE>",
});
Step 3: 安裝並運行 demo app
在你的 localhost 上構建和運行 Demo 應用程序:
-
打開
shell終端並將目錄更改為frontend-monitoring項目文件夾 -
使用
.nvmrc文件設置與本項目兼容的Node版本。運行:
> nvm use
- 通過運行安裝項目依賴項:
> npm install
- 通過運行以下命令在
localhost上構建、部署和運行項目:
> npm run deploy

部署成功完成后,您將在終端中看到確認信息。
捕捉你的第一個錯誤
Step 1: 捕捉你的第一個事件
-
通過在瀏覽器中打開
localhost鏈接來啟動demo app -
打開瀏覽器的
Console驗證是否發生了錯誤

-
點擊任何
Buy!將產品添加到購物車的按鈕 -
單擊左側面板上的
Checkout按鈕以生成錯誤
請注意:-
應用程序中顯示出錯消息
-
錯誤出現在瀏覽器控制台中
-
發送到您在
Sentry上配置的電子郵件地址的警報,通知您應用中發生的錯誤
-
Step 2: 處理錯誤
-
轉到您的電子郵件收件箱並打開
Sentry的電子郵件通知
-
單擊
Sentry上的查看以在您的Sentry帳戶中查看此錯誤的完整詳細信息和上下文
-
向下滾動到
Exception堆棧跟蹤
- 請注意,堆棧跟蹤已
minified。JavaScript通常被minified以減少源代碼的大小。 Sentry可以將代碼解壓縮(un-minify)回其可讀形式並在每個堆棧幀中顯示源(代碼)上下文行,這將在下一節中介紹。
- 請注意,堆棧跟蹤已
在錯誤中啟用可讀堆棧跟蹤
Step 1: 准備構建環境
我們在 frontend-monitoring 項目中使用 Makefile 來利用 sentry-cli 處理與 Sentry 相關的任務。CLI 已通過項目依賴項(請參閱 package.json)提供,並且需要幾個參數才能運行。
-
打開
Makefile -
取消注釋已注釋的環境變量
SENTRY_AUTH_TOKEN、SENTRY_ORG和SENTRY_PROJECT(刪除前導#)
-
查找
SENTRY_ORG和SENTRY_PROJECT值-
打開您的 Sentry 帳戶,然后單擊
Settings > Projects -
您的
Organization ID是瀏覽器URL的一部分(例如,https://sentry.io/settings/SENTRY_ORG/projects/) -
SENTRY_PROJECT值是出現在project tile中的名稱
-
復制值並將它們粘貼到
Makefile中
-
-
創建
SENTRY_AUTH_TOKEN-
單擊左側面板中的
Developer Settings菜單選項名稱以創建新的集成(integration)和組織級(org-level)身份驗證令牌(auth token) -
單擊
New Internal Integration
-
輸入
Name -
在
Permissions下設置Release:Admin和Organization:Read & Write
-
單擊
Save Changes -
保存成功確認后,向下滾動到頁面底部並復制
TOKENS下分配的令牌
-
將令牌粘貼到
Makefile中
-
-
Makefile應如下所示:
Step 2: 創建 release 並上傳 source maps
現在我們可以調用 sentry-cli 來讓 Sentry 知道我們有一個新 release 並將項目的 source maps 上傳到它。
- 您可以設置自定義
release version以適應您的命名約定,或者讓Sentry CLI建議一個版本。 - 為了構建
frontend-monitoring項目,我們使用react-scripts包,它也在./build/static/js/下生成source maps
-
在
Makefile中,為release version添加一個新的環境變量,利用Sentry CLI提出版本值REACT_APP_RELEASE_VERSION=`sentry-cli releases propose-version` -
在
Makefile的底部,使用Sentry CLI將以下目標粘貼到:- 在您的
Sentry帳戶中創建一個新的release entity - 將項目的
source maps上傳到新release
create_release: sentry-cli releases -o $(SENTRY_ORG) new -p $(SENTRY_PROJECT) $(REACT_APP_RELEASE_VERSION) upload_sourcemaps: sentry-cli releases -o $(SENTRY_ORG) -p $(SENTRY_PROJECT) files $(REACT_APP_RELEASE_VERSION) \ upload-sourcemaps --url-prefix "~/static/js" --validate build/static/jsMakefile包含一個setup_release目標,該目標在運行$ npm run deploy以構建和運行項目時從package.json文件中調用。 我們將使用這個目標來調用所有與release相關的任務。 - 在您的
-
將現有的
setup_release替換為:setup_release: create_release upload_sourcemaps您的
Makefile應如下所示:
現在您創建了
release version,您可以通過SDK將應用中捕獲的任何錯誤與該release相關聯。 -
打開
index.html文件並向SDK添加一個新的配置選項。
將release version環境變量分配給release keySentry.init({ dsn: "<YOUR DSN KEY>", release: "%REACT_APP_RELEASE_VERSION%", });注意:release version 環境變量是在構建時在 project.json 中設置的,並被注入到生成的標記中。
Step 3: 嘗試您的更改 --- 生成另一個錯誤
-
如果您的終端仍在
localhost上提供demo app,請單擊^C關閉本地服務器 -
通過運行以下命令來構建、部署和重新運行項目:
> npm run deploy
注意:Makefile 在縮進方面通常是嚴格的。如果您在運行上述命令時遇到意外錯誤,請確保 sentry-cli 命令正確地以制表符(tab)為前綴。
-
查看終端日志。請注意,
minified的腳本和source maps已上傳到release version。
-
在您的瀏覽器中,確保開發控制台已打開並執行清空緩存和硬重新加載(
Empty Cache and Hard Reload)以確保提供更新的代碼。
-
通過將產品添加到您的購物車並單擊
Checkout再次生成錯誤 -
檢查您的電子郵件以獲取有關新錯誤的警報,然后單擊在 Sentry 上查看以打開
issue頁面 -
請注意
- 該事件現在標記有
Release ID - 錯誤堆棧跟蹤現在
un-minified,包括每個堆棧幀中的文件名、方法名、行號和列號以及源代碼上下文

- 該事件現在標記有
Step 4: 探索 release
創建 release version 並通過 Sentry CLI 上傳 source maps,在您的 Sentry 帳戶中創建一個 Release entity。
-
單擊左側面板中的
Releases,注意創建了一個新的release version

-
單擊
release,注意您的應用程序中的錯誤已與此release相關聯並列為New Issue

-
單擊
Artifacts選項卡,注意minified的資源和source maps可用於此release並用於source map堆棧跟蹤

啟用可疑提交
Sentry 使用源代碼存儲庫中的提交元數據(metadata)來幫助您更快地解決問題。
這是通過建議可能在您的問題(issue)詳細信息頁面中引入錯誤的可疑提交(Suspect Commits)來完成的。
它還允許 Sentry 顯示 Suggested Assignees - 這些提交的作者列表並建議他們分配以解決問題(issue)。
現在您已經創建了一個 release,您可以告訴 Sentry 哪些提交與您的最新版本的代碼相關聯 —— 這稱為提交跟蹤(Commit Tracking)。
Step 1: 集成您的 GitHub 帳戶和存儲庫
-
要將
GitHub與您的 Sentry 組織(org)集成,請按照GitHub文檔中的說明進行操作 -
對於最后一步,從您的
GitHub帳戶添加frontend-monitoring存儲庫

Step 2: 設置提交跟蹤
現在您已經在 Sentry 中設置了 releases 作為 CI/CD 流程的一部分並集成了源代碼存儲庫,您可以將鏈接存儲庫中的提交與發布相關聯。
現在,您已經在 Sentry 中設置了 release 作為 CI/CD 流程的一部分,並集成了源代碼存儲庫,您可以將鏈接存儲庫中的 commits 與 releases 相關聯。
注意:在 demo 項目中,我們使用 Makefile 來處理與構建相關的任務。如果您沒有使用提供的 React demo 代碼並且沒有 Makefile,您可以選擇直接從命令行運行本教程中使用的 sentry-cli 命令,或者將這些命令集成到相關的構建腳本中。
-
在你的項目中打開
Makefile -
在文件底部添加以下目標:
associate_commits:
sentry-cli releases -o $(SENTRY_ORG) -p $(SENTRY_PROJECT) set-commits --auto $(REACT_APP_RELEASE_VERSION)
該命令將 commits 與 release 相關聯。 auto 標志自動確定存儲庫名稱,並將前一個 release 的提交和當前主提交之間的提交與該 release 相關聯。
- 新的目標
associate_commits將作為setup_release目標的一部分被調用,在最后添加它:
setup_release: create_release upload_sourcemaps associate_commits
您的 Makefile 應如下所示:

-
如果您的終端仍在
localhost上提供demo app,請按^C將其關閉 -
通過運行以下命令在本地主機上構建、服務和重新啟動項目:
> npm run deploy
在終端日志中,請注意 sentry-cli 標識了 GitHub 存儲庫。

Step 3: 可疑提交和建議受理人
現在可疑提交(suspect commits)和建議受理人(suggested assignees)應該開始出現在問題(issue)頁面上。Sentry 通過將 release 中的提交、這些提交涉及的文件、堆棧跟蹤中觀察到的文件、這些文件的作者和所有權規則聯系在一起來確定這些。
-
刷新瀏覽器並通過將產品添加到購物車並單擊
Checkout來生成錯誤 -
檢查您的電子郵件以獲取有關新錯誤的警報。請注意,電子郵件中添加了一個新的可疑提交(
Suspect Commits)部分

-
單擊 Sentry 上的
查看(View)以打開問題(issue)頁面 -
在主面板中,注意
SUSPECT COMMITS部分現在指向最有可能引入錯誤的提交。您可以單擊提交(commit)按鈕在GitHub上查看實際提交詳細信息 -
在右側面板中的
Suggested Assignees--- 您將看到可疑提交的作者被列為此問題的建議受理人(suggested assignee)

您可以通過單擊圖標將建議受理人分配給問題。但是,在這種情況下,提交源於上游存儲庫,並且建議受理人不是您組織的一部分。或者,您可以手動將問題分配給分配給項目的其他用戶或團隊。
- 單擊
Assignment下拉列表並選擇一個項目用戶或團隊

-
在主面板中,找到
release標簽並將鼠標懸停在i圖標上 -
在
release彈出窗口中,注意release現在包含提交數據(commit data)

-
單擊 release
i圖標打開release詳細信息頁面 -
選擇
Commits選項卡。請注意,release現在包含相關的提交列表

更多信息
- 創建 Release 和關聯提交(
Associate Commits) - 全局集成(
Global Integrations)
