Sentry 監控 – Search 搜索查詢實戰
- 2021 年 9 月 24 日
- 筆記

系列
- 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 Web 前端監控 – 最佳實踐(官方教程)
- Sentry 後端監控 – 最佳實踐(官方教程)
- Sentry 監控 – Discover 大數據查詢分析引擎
- Sentry 監控 – Dashboards 數據可視化大屏
- Sentry 監控 – Environments 區分不同部署環境的事件數據
- Sentry 監控 – Security Policy 安全策略報告
公眾號:黑客下午茶
目錄
- 語法
- 使用
OR和AND - 同一個
Key上的多個值 - 顯式
Tag語法 - 高級
- 排除
- 通配符(
*)
- 使用
- 可搜索的屬性
Issue屬性Event屬性- 自定義
Tag
- 已保存搜索
- 推薦搜索
- 固定搜索
- 更改固定搜索
- 固定推薦搜索
- 組織範圍內保存的搜索
- 創建組織範圍的已保存搜索
- 刪除組織範圍內已保存的搜索
語法
搜索查詢是使用 key:value 模式構建的,最後是可選的原始搜索。 每個 key:value 都是一個 token,可選的原始搜索本身就是一個 token。key:value 對 tokens 被視為 issue 或 event 屬性。 可選的原始搜索被視為單個 token 並搜索事件標題/消息(title/message)。
例如:
is:resolved user.username:"Jane Doe" server:web-8 example error
在上面的例子中,有三個 key(is:, user.username:, server:),但是有四個 token:
is:resolveduser.username:"Jane Doe"server:web-8example error
Token is:resolved 和 user.username:"Jane Doe" 是標準搜索 token,因為兩者都使用保留關鍵字。 有關適當的關鍵字用法,請參閱 Issue 屬性和 Event 屬性。token server:web-8 指向 Sentry SDK 發送的自定義 tag。
token 示例錯誤使用可選的原始搜索並作為 issue 搜索查詢的一部分傳遞(使用類似於 SQL 的 CONTAINS 匹配)。 使用可選的原始搜索時,您可以提供一個字符串,查詢將使用整個字符串。
使用 OR 和 AND
OR和AND搜索條件僅適用於Discover、Performance和Metric Alerts。
Token 之間使用 OR 和 AND,並使用括號 () 對條件進行分組。AND 也可用於非聚合(non-aggregate)和聚合(aggregate)之間。但是,OR 不能。
- 非聚合基於特定標籤或屬性過濾數據。例如,
user.username:jane是一個非聚合字段。 - 在數字尺度(
numerical scales)上聚合過濾數據。例如,count()是一個聚合函數,而count():>100是一個聚合過濾器。
使用 OR 條件的一些示例:
# 一個有效的 `OR` 查詢
browser:Chrome OR browser:Opera
# 一個無效的 `OR` 查詢
user.username:janedoe OR count():>100
此外,查詢優先於 OR 之前的 AND。例如,「x AND y OR z」 與 「(x AND y) OR z」 相同。 括號可用於更改分組。例如,「x AND (y OR z)」。
同一個 Key 上的多個值
您可以通過將值放在列表中來搜索同一 key 的多個值。例如,「x:[value1, value2]」 將找到與 「x:value1 OR x:value2」 相同的結果。執行此操作時,搜索將返回與任何搜索詞匹配的問題/事件(issue/event)。
使用值列表搜索相同 key 的示例:
release:[12.0, 13.0]
目前,您不能對關鍵字 is 使用這種類型的搜索。
顯式 Tag 語法
我們建議您永遠不要使用保留關鍵字(例如 project_id)作為 tag。但如果這樣做,則必須使用以下語法進行搜索:
tags[project_id]:tag_value
高級
排除
默認情況下,搜索詞使用 AND 運算符;也就是說,它們返回與所有搜索詞匹配的問題/事件(issues/events)的交集。
要改變這一點,您可以使用否定運算符 ! 排除搜索參數。
is:unresolved !user.email:[email protected]
在上面的示例中,搜索查詢返回所有未解決且未影響電子郵件地址為 [email protected] 的用戶的 Issues。
通配符(*)
搜索支持通配符 * 作為特定字符和字符串的佔位符。
browser:"Safari 11*"
在上面的示例中,搜索查詢將匹配 browser 值,例如 「Safari 11.0.2」、「Safari 11.0.3」 等。
你也可以像這樣組合運算符:
!message:"*Timeout"
在上面的示例中,搜索查詢返回的結果沒有的 message 值,如 ConnectionTimeout、ReadTimeout 等。
可搜索的屬性
Sentry 的搜索為您提供了保留關鍵字,例如 is、user、server 和 browser,您可以使用它們來搜索 issue 和 event 的屬性。您還可以創建要搜索的自定義標籤。以下是所有可用問題和事件搜索詞的規範列表。
Issue 屬性
Issue 是一個或多個事件的集合。可搜索的屬性包括工作流狀態(workflow status)、分配(assignment)、聚合計數(aggregate counts)和年齡(age)。
以下是 Sentry 保留和已知的 issue 級的 key 和 token 列表:
| Key/Token | 描述 |
|---|---|
| age | 限制結果自 age 以來產生的 issue。語法類似於 Unix find 命令。支持後綴: m -> minutes, h -> hours, d -> days, w -> weeks |
| age:-24h | 返回過去 24 小時內的新 issue。 |
| age:+12h | 返回超過 12 小時的 issue。 |
| age:+12h age:-24h | 返回超過 12 到 24 小時之前創建的 issue。 |
| assigned | 篩選 issue 分配給的用戶。值可以是 user ID(您的 email 地址)、me 代表您自己、me_or_none 代表您自己或沒有受理人,或者 #team-name。 |
| assigned_or_suggested | 過濾 assigned 或 suggested 分配問題的用戶或團隊。 建議的受理人由匹配的所有權規則(ownership rules)和可疑提交(suspect commits)確定。值可以是 user ID(您的 email 地址)、me 代表您自己、me_or_none 代表您自己或沒有受理人/建議,或者 #team-name。 |
| bookmarks | 過濾為 issue 添加書籤的用戶。值可以是 user ID(您的 email 地址) 或 me 代表您自己。 |
| first-release | 將結果限制為在給定版本中首次出現的 issue。與發佈版本完全匹配,或 first-release:latest 選擇最新版本。 |
| has | 將結果限制為具有任何 tag 值的 issue。 |
| has:user | 將結果限制為具有標記 user 值的 issue。 |
| is | 篩選 issue 的各種屬性。 |
| is:unresolved is:resolved is:ignored |
根據 issue 的狀態進行篩選。 |
| is:assigned is:unassigned |
根據是否已分配 issue 返回 issue。 |
| is:linked is:unlinked |
根據 issue 是否鏈接(到外部 issue 跟蹤器)返回 issue。 |
| lastSeen | 將結果限制為自(since)或直到(until)給定時間點最後出現的問題。 用法類似於 age token(見上文)。 |
| lastSeen:+30d | 返回 issue 最近一次出現在 30 天前或更久之前。 |
| lastSeen:-2d | 返回最近兩天內出現的 issue。 |
| timesSeen | 將結果限制在精確地、至少或最多某些次數的 issue 上。完全匹配: timesSeen:10。上限或下限 token:timesSeen:>10, timesSeen:>=10, timesSeen:<10, timesSeen:<=10 |
Event 屬性
Events 是使用 Sentry SDK 捕獲的底層事件數據(read: errors 和 transactions)。
在 「Issues」 頁面中搜索事件屬性時,搜索將返回具有與提供的事件過濾器匹配的一個或多個事件的任何 issue。
以下是 Sentry 保留和已知的事件級(event-level) key 和 token 列表:
| Key/Token | 描述 |
|---|---|
| location | 將結果限制為具有匹配 location 的事件。 |
| message | 將結果限制為具有匹配 message 的事件。 |
| environment | 將結果限制為用匹配 environment 標記的事件。 |
| release | 將結果限制為帶有匹配版本標記的事件。 您可以創建一個與發佈版本完全匹配的 token,或者 release:latest 選擇最新的版本。 |
| release.package release.version release.build |
將結果限制為用匹配語義版本標記的事件。支持範圍和通配符(*)。 |
| release.stage | 將結果限制為帶有匹配發佈階段標記的 release。 |
| transaction | 將結果限制為標有 URL template/job 名稱的事件。 |
| geo.country_code geo.region geo.city |
將結果限制為由地理區域觸發的事件。 |
| http.method http.referer http.url |
根據 HTTP 請求上下文限制結果。 |
| user.id user.email user.username user.ip |
將結果限制為影響給定用戶的事件。 |
| event.timestamp | 將結果限制為發生在給定時間戳的事件。 該過濾器可以通過兩次以提供一個範圍。 2016 年 1 月 2 日發生的事件: event.timestamp:2016-01-0201:00 和 02:00 (UTC) 之間的事件:event.timestamp:>=2016-01-02T01:00:00 event.timestamp:<2016-01-02T02:00:00可以使用以下比較運算符:大於( >)、大於或等於(>=)、小於(<)、小於或等於(<=) |
| device.arch device.battery_level device.brand device.charging device.locale device.model_id device.name device.online device.orientation device.simulator device.uuid |
將結果限制為用特定設備屬性標記的事件。 |
| os.build os.kernel_version |
將結果限制為用特定操作系統屬性標記的事件。 |
| stack.abs_path stack.filename stack.function stack.module stack.package stack.stack_level stack.lineno |
將結果限制為具有匹配堆棧屬性的事件。 對於 Native SDK 用戶,stack.package 是 stack.module 的 Native 等價項。 |
| error.type error.value error.mechanism error.handled |
將結果限制為具有匹配錯誤屬性的事件。 |
自定義 Tag
此外,您可以使用您指定為 token 的任何 tag。標籤是分配給事件的各種 key/value 對,您可以稍後將它們用作細分或快速訪問以查找相關事件。
大多數 SDK 通常支持通過配置 scope 來配置 tag。
標籤的幾種常見用途包括:
- 服務器的
hostname - 您的平台版本(例如,
iOS 5.0) - 用戶的
language
已保存搜索
在 Issues 的 「Saved Searches」 選項卡中,您可以訪問推薦的搜索、固定您認為最有用的搜索並利用組織範圍內的已保存搜索。
推薦搜索
推薦搜索是我們認為您可能會使用的常見搜索詞。這些預先進行的搜索列在「已保存搜索(Saved Searches)」下拉列表中的「推薦搜索(Recommended Searches)」下,並按您最近使用它們的時間順序列出。

固定搜索
您可以固定搜索,它將成為您在 Issues 頁面上看到的默認視圖。固定搜索僅對您可見,並且與您的項目相關。
- 在搜索欄中鍵入搜索詞。

- 單擊該搜索旁邊的圖釘圖標。

- 固定後,
Sentry會將搜索添加到「Saved Searches」下拉列表中。文本中的搜索標籤將顯示為「我的固定搜索(My Pinned Search)」。

更改固定搜索
要更改您的固定搜索:
- 選擇您的固定搜索。取消單擊圖釘圖標。您的默認搜索將返回到
is:unresolved。 - 運行另一個搜索。單擊圖釘圖標。列為
「我的固定搜索(My Pinned Search)」的查詢現在將成為新的固定查詢,取代原來的查詢。
固定推薦搜索
您可以像固定任何其他搜索一樣固定推薦的搜索。當您選擇了推薦的搜索,並且推薦的搜索查詢會填充搜索欄時,請將其固定。
組織範圍內保存的搜索
創建組織範圍的已保存搜索
Owner 和 manager 可以通過創建自定義保存搜索為其組織創建持久視圖。這些保存的搜索不與特定項目相關聯,而是與整個組織的所有項目(和用戶)相關聯。
- 在搜索欄中鍵入搜索,單擊操作菜單(三個點)。選擇
「創建保存的搜索(Create Saved Search)」。

- 在打開的
modal中,為搜索命名並設置issues列表的排序順序。您還可以在此處更新查詢。然後點擊「Save」。

- 然後該視圖將成為
「Saved Search」下拉列表的一部分。

刪除組織範圍內已保存的搜索
此操作僅適用於組織
owner或manager。
當您將鼠標懸停在自定義保存的搜索(saved search)上時,搜索名稱旁邊會顯示垃圾桶圖標。單擊垃圾桶圖標以從下拉列表中刪除自定義保存的搜索。

公眾號:黑客下午茶




