Sentry(v20.12.1) K8S 雲原生架構探索, SENTRY FOR JAVASCRIPT 手動捕獲事件基本用法

  • 2021 年 1 月 14 日
  • 筆記

系列

  1. Sentry-Go SDK 中文實踐指南
  2. 一起來刷 Sentry For Go 官方文檔之 Enriching Events
  3. Snuba:Sentry 新的搜索基礎設施(基於 ClickHouse 之上)
  4. Sentry 10 K8S 雲原生架構探索,Vue App 1 分鐘快速接入
  5. Sentry(v20.12.1) K8S雲原生架構探索,玩轉前/後端監控與事件日誌大數據分析,高性能高可用+可擴展可伸縮集群部署
  6. Sentry(v20.12.1) K8S 雲原生架構探索,Sentry JavaScript SDK 三種安裝載入方式
  7. Sentry(v20.12.1) K8S 雲原生架構探索,SENTRY FOR JAVASCRIPT SDK 配置詳解

基本用法

Sentry 的 SDK 掛接到您的運行時環境中,並自動報告錯誤(errors)、異常(exceptions)和拒絕(rejections)。

關鍵術語:

  • event 是向 Sentry 發送數據的一個實例。通常,該數據是一個錯誤(error)或異常(exception)。
  • issue 是一組類似事件。
  • 事件的報告稱為 capturing。捕獲事件後,會將其發送給 Sentry。

最常見的捕獲形式是捕獲錯誤(capture errors)。可以捕獲的錯誤因平台而異。通常,如果您有一些看起來像異常(exception)的東西,它可以被捕獲。對於某些 SDK,還可以省略 capture_exception 的參數,Sentry 將嘗試捕獲當前異常。對於向 Sentry 手動報告錯誤或消息也很有用。

在捕獲事件時,您還可以記錄導致該事件的麵包屑(breadcrumbs)。麵包屑與事件不同:它們不會在 Sentry 中創建事件,但會在發送下一個事件之前被緩衝。在我們的 Breadcrumbs documentation 中了解更多關於麵包屑的資訊。

捕獲錯誤

在 JavaScript 中,您可以將錯誤對象傳遞給 captureException(),以將其捕獲為事件。可以將字元串作為錯誤拋出,在這種情況下無法記錄回溯。

try {
  aFunctionThatMightFail();
} catch (err) {
  Sentry.captureException(err);
}

捕獲裸消息

另一個常見操作是捕獲裸消息(bare message)。消息是應該發送給 Sentry 的文本資訊。通常情況下,消息不會發出,但它們對某些團隊可能很有用。

Sentry.captureMessage("Something went wrong");

設置事件級別

level — 類似於日誌級別 — 通常是根據集成(integration)默認添加的。您還可以在事件中重寫它。

要在 scope 外設置 level,你可以調用 captureMessage() 每個事件:

Sentry.captureMessage("this is a debug message", "debug");

要在作用域(scope)中設置級別,你可以調用 setLevel()

Sentry.configureScope(function(scope) {
  scope.setLevel(Sentry.Severity.Warning);
});

或者每個事件:

Sentry.withScope(function(scope) {
  scope.setLevel("info");
  Sentry.captureException("info");
});

中文文檔陸續同步到:

我是為少。
微信:uuhells123。
公眾號:黑客下午茶。
謝謝點贊支援👍👍👍!