* Discover 查询
* 预置查询
* 已保存查询
* 构建新查询
* 搜索查询
* 排序查询
* 编辑查询
* 共享查询
* 删除查询
* 查询结果
* 事件详情
* 查询生成器
* 按全局选择标题过滤
* 按搜索条件过滤
* 语法
* Tag Summary 过滤
* 按交互式图表过滤
* 显示选项
* Y 轴选项
* 按表列过滤
* 叠加函数
* 单元格过滤
* 添加方程式
* 排序列
* 其他查询操作
* 编辑查询
* 分享查询
* 导出 CSV
* 删除查询
* 添加查询方程式
* 添加方程式
* 方程式指南
* 示例方程式
* 计算完成事务的百分比
* 计算自定义 Apdex
* 查找最大平均非数据库时间
* 通过 Discover 发现趋势
* 通过 Issues Discover
* 通过 Errors Discover
* URL 错误
* 未处理的错误
* 错误最多的文件
* 每个 Release 的错误
* 按小时或按天计算的错误
* 其他用例
Discover
通过构建和丰富您的错误数据,提供跨环境数据的可见性。您可以查询和解锁对整个系统健康状况的洞察,并在一个地方获得关键业务问题的答案。
Discover
主页提供所有已保存和预构建查询的视图,因此您可以快速深入到需要立即关注的区域。例如,如果在过去 24
小时内出现错误查询的峰值,用户可以先进行调查。每个查询都保存为一张卡片,显示数据的汇总视图。
带有 Sentry
图标的查询卡是预先构建的,无法移除。
All Events
:用户可以查看任何项目组的原始错误流。这取代了事件功能,使用户能够添加其他列和更改分组以实现所需的细分。Errors by Title
:用户可以通过原始错误总数以及受影响的用户总数来查看最常发生的错误。Errors by URL
:用户可以看到产生最多错误和不同类型问题的页面。提醒一下,问题是一组指纹事件。有关更多详细信息,请参阅有关指纹的完整文档。带有用户头像的查询卡表示已保存的查询。创建已保存查询的用户将在查询卡上显示他们的头像。保存的查询可供组织中的任何人查看,并且不限于用户帐户。
从 Discover
主页,您可以通过三种方式构建查询。
Build a new query(构建新查询)
Duplicate(复制)
Save as(另存为)...
Save(保存)
应用新的搜索条件或表列来修改查询结果。保存查询并分配自定义显示名称。有关完整的详细信息,请参阅有关查询生成器的文档。
寻找特定查询?使用主页上的搜索栏查找查询名称。
右上角的下拉菜单将允许您按属性排序。
Recently Edited
(默认)My Queries
Query Name
(A-Z)Date Created
(最新)Date Created
(最旧)Most Outdated
如果您需要编辑这些查询中的任何一个,请进入查询,进行所需的更改,右上角会出现一个按钮,要求您保存/更新(save/update
)查询。请记住,对查询条件的编辑不会自动保存。
要重命名已保存的查询,请单击标题旁边的铅笔图标并输入所需的显示名称。单击“enter”
或点击区域外以保存更新的名称。
随时分享您的疑问。您可以与也有权访问同一组织的其他用户共享 URL
。随着查询的每个部分的构建,结果和 UR
L 都会更新,以便可以在电子邮件、聊天等中共享正在进行的搜索。
在 Discover
主页上,每个保存的查询卡都有一个省略号,可以打开上下文菜单。从这里,您可以删除查询。这个动作是不可逆的。您还可以通过单击右上角的垃圾桶在“查询结果(Query Results)”
视图中删除查询。
要查看查询结果,请单击任何查询卡。您将找到图表、表格和可切换的标签摘要(或分面图facet map
)。顶部的搜索栏可让您查看输入的搜索条件。该表反映了具有可排序列的事件。
每个表格单元格都有一个动态上下文菜单,允许您根据您的选择通过自动更新搜索栏或表格列来继续探索您的数据。诸如在过滤器中添加或排除值、打开选定版本或查看底层问题堆栈等操作:
如果第一列显示图标(如上所示),则表示事件已堆叠。单击该图标可查看完整的事件列表。每个事件都有一个 event ID
,您可以单击以了解更多详细信息。有关如何构建查询的更多信息,请转到查询构建器。
从 Discover > [Saved Query] > Event Detail
导航到事件详细信息页面。您将找到有关单个事件的所有相关详细信息。对于每个事件,您将看到 ID、时间戳(timestamp
)和链接以查看 Sentry
收到的规范化 JSON payload
。
事件详细信息(Event Detail
)视图因事件类型(错误error
、事务transaction
、csp)而异。事务事件详细信息可能与错误事件详细信息(如上所示)具有完全不同的视图。例如,错误可能会在侧栏中显示相关问题。这使您可以快速浏览该问题的事件量,并让您快速导航到相关问题。您还可以在这些视图中找到堆栈跟踪(stack traces
)、面包屑(breadcrumbs
)等。
从 Discover
主页,您可以通过三种方式构建查询。
Build a new query(构建新查询)
Duplicate(复制)
Save as(另存为)...
Save(保存)
有四个主要构建块会影响已保存查询的结果。您可以结合使用这些方法来缩小搜索范围。
在页面顶部指定要放大的项目(projects
)、环境(environments
)和日期范围(date range
)。这也可以在 Sentry
的其他部分作为顶级过滤器(top level filter
)找到。
所有事件都有内置的关键字段(key fields
)或自定义标签(custom tags
)。使用搜索栏输入这些 key
并为其分配值。这将过滤您的事件列表。这是内置的 key fields
。
id
(string)
issue.id
(number)
message
(string)
project.id
(number)
release
(string)
release.package
(string)
release.version
(string)
release.build
(string)
title
(string)
platform.name
(string)
environment
(string)
event.type
(string)
location
(string)
timestamp
(datetime)
timestamp.to_hour
(datetime)
timestamp.to_day
(datetime)
查询生成器语法与 Sentry
的搜索语法相同。从上方输入关键字段(key field
)或自定义标记(custom tag
)后,您可以使用任何引用的语法。例如,count()
为您提供事件发生的次数。这可以用以下方式编写:
count():99
count():<99
或 count():<=99
count():>99
或 count():>=99
count():>10 count():<20
在过滤器之间使用 OR
和 AND
搜索条件。但是 OR
不能用于聚合(aggregate
)和非聚合(non-aggregate
)过滤器之间。有关这些条件的更多详细信息,请参阅使用 OR
和 AND
。
您还可以通过将值放在列表中来搜索同一 key
的多个值。例如,“x:[value1, value2]”
将找到与 “x:value1 OR x:value2”
相同的结果。您可以在我们涵盖同一 Key
上的多个值的内容中了解更多信息。
每个事件都有一个标签值(tag values
)列表。标签摘要分面图
(或分面图)是按频率排序的前 10
个 key
的可视化。最常见的标签值(tag value
)直接列在说明(description
)和百分比(percentage
)的栏上方。将鼠标悬停在栏中的每个部分上以查看该标签的确切分布。
单击这些部分中的任何一个以进一步优化您的搜索。例如,单击浏览器栏中代表 Chrome
的部分将自动更新 tag summary
,然后将 Chrome
添加到搜索条件中。
每个查询都有一个交互式图表,可反映下表中显示的数据。要放大,只需在要调查的区域上单击并拖动即可。您还可以自定义显示和 Y
轴。这将与您的查询一起保存。
在表格上方,单击列(Columns)
以打开 modal
。这将显示结果表中所有列的列表。您可以添加、删除和移动基本关键字段(basic key field
)列或自定义标签(custom tags
)列。使用相同的视图,您还可以使用以下任何函数堆叠事件:
avg(...)
count(...)
count_unique(...)
max(...)
min(...)
sum(...)
每个函数都会要求您分配一个参数。有些是必需的,而有些则是可选的。函数将基于相同的值堆叠事件。如果未应用任何函数,则查询结果中的事件将单独列出。完成列编辑后,单击“应用(Apply)”
,结果将反映在查询结果中。请记住,如果添加了太多列,表格可能会水平滚动。
表格中的每个单元格都会在悬停时出现一个省略号。这将打开一个上下文菜单,其中包含取决于值类型的附加过滤功能。例如,您可以通过单击“添加到过滤器(Add to filter)”
有选择地将 transaction
定位到搜索条件栏。
您还可以使用表列作为方程式变量向查询添加方程式,结果将显示在查询结果表中。在添加查询方程式中了解更多信息。
单击要排序的列 header
。向下箭头按降序对列进行排序,向上箭头按升序对列进行排序。这可能会刷新表格。
如果您需要编辑这些查询中的任何一个,请进入查询,进行所需的更改,右上角会出现一个按钮,要求您保存/更新(save/update)
查询。请记住,对查询条件的编辑不会自动保存。
要重命名已保存的查询,请单击标题旁边的铅笔图标并输入所需的显示名称。单击 "enter"
或单击区域外进行确认。
随时分享您的疑问。您可以与也有权访问同一组织的其他用户共享 URL
。随着查询的每个部分的构建,结果会更新,URL
也会更新,以便可以在电子邮件、聊天等中共享正在进行的搜索。
如果您想将数据带到别处,请单击 “Export”
以获取 CSV
文件。
对于大型导出,一旦准备就绪,您将收到一封包含下载链接的电子邮件。这将需要在 Sentry 下载页面上进一步验证。这包含文件的 SHA1 checksum
,您可以使用以下命令验证其完整性:
echo "<SHA1 checksum> <downloaded CSV name>" | sha1sum -c -
根据数据量,等待时间可能会有所不同。结果限制为 1000 万行或 1GB,以先到者为准。
删除已保存的查询是不可逆的。
在 Discover
主页上,每个保存的查询卡都有一个省略号,可以打开上下文菜单。从这里删除查询。您还可以通过单击右上角的垃圾桶在“查询结果(Query Results)”
视图中删除查询。
在 Discover 中,您可以根据查询列添加方程式。每列就像一个变量,因为它代表查询的数字结果,这个数字用于等式。
例如,让我们用一个方程式来计算 transaction
的第一次内容绘制 (measurements.fcp
) 与 transaction
的最大内容绘制 (measurements.lcp
) 的比率:
equation = measurements.fcp
/ measurements.lcp
该等式将使用每个查询列的结果来计算比率。在这种情况下,这些查询列的结果是:
measurements.fcp
= 50measurements.lcp
= 100等式变为:
50 / 100
然后等式的结果显示在更新的表中,如下面的记录所示:
这些等式可以帮助您计算以下内容:
transaction
百分比向查询添加方程式
列(Columns)
按钮打开列编辑器。添加一个方程式(Add an Equation)
“应用(Apply)”
。方程必须:
a(a+b)
无效;相反,您应该输入 a * (a + b)
方程不能:
方程将遵循预期的运算顺序,首先解析括号,然后是除法和乘法,然后是加法和减法。方程还可以包括负数。
方程只能对数值列和函数进行运算,其中包括:
获取在阈值内完成的事务百分比
* 列 1:
* Function count_if
* Field transaction.duration
* Condition is less than or equal to
* 将最终参数设置为阈值(如 300
)
* 列 2:
* Function count
* 列 3:
* Field transaction
count_if(transaction.duration,lessOrEquals,300) / count() * 100
。Apdex
定义为 (satisfied + tolerable*0.5 + frustrated*0)/total
。如果您想将 tolerable
的权重更改为 0.2
,您将创建以下查询和方程。
* 列 1:
* Function count_if
* Field transaction.duration
* Condition is less than or equal to
* 将最终参数设置为 Satisfied
阈值(如 300
)
* 列 2:
* Function count_if
* Field transaction.duration
* Condition is less than or equal to
* 将最终参数设置为 Tolerable
阈值(如 1200
)
* 列 3:
* Function Count()
* 列 4:
* Field transaction
equation
字段中输入以下内容:(count_if(transaction.duration,lessOrEquals,300) + (count_if(transaction.duration,lessOrEquals,1200) - count_if(transaction.duration,lessOrEquals,300)) * 0.2)/count()
查找不是来自数据库调用的时间最长的事务。
* 列 1:
* Function avg
* Field transaction.duration
* 列 2:
* Function avg
* Field spans.db
equation
字段中输入 avg(transaction.duration) - avg(spans.db)
。equation
排序。Discover
是一个强大的查询引擎,允许您跨项目和应用程序查询所有错误元数据。您可能已经注意到,安装在您的应用程序中的 Sentry SDK
捕获了大量事件,每个事件都包含有关底层错误(underlying error
)、平台(platform
)、设备(device
)、用户(user
)等的上下文数据。我们还强烈鼓励通过添加自定义标签和配置 release
和 environment
,通过 SDK
丰富您的错误数据。有关更多信息,请参阅让您的数据发挥作用。
让我们通过一些示例来了解如何处理所有这些数据,以获得有关应用程序运行状况和稳定性的一些有用见解。
如果您设置了与 Sentry 字段同名的标签,则某些表格列选项可能会重复。对于以下示例,请使用标记为“field”的表列选项。
当您的应用程序中断时,Sentry
会实时通知您,然后提供信息和工具来分类和解决错误。使用 Discover
,您可以采取更主动的方法来查找破坏您的应用程序的主要问题。构建该查询可能如下所示:
“Discover”
并单击 "Build a new query"
。Global Header
中,选择您要查询的项目(projects
)、环境(environments
)和错误时间范围(time range of errors
)。issues
),请在搜索栏中按 event.type:error
进行过滤。“Results”
表列以显示每个项目的事件数 [count()
]、受影响的用户 [count_unique(user)
] 和独特问题 [count_unique(issue)
]。COUNT_UNIQUE(ISSUE)
列标题以相应地对行项目进行排序。project
行项目上,单击显示的操作图标,然后选择 “Add to filter”
。这将进一步缩小您的结果范围,以便您可以继续调查该特定 project
的 issues
。issues
是什么。更改表列以显示:项目/问题(item/issue)
上,您可以单击 issue
名称以打开 “Issue Details”
页面并对 issue
进行分类。您还可以单击 “Open Group”
图标以在特定问题的上下文中继续查询事件堆栈。Discover
的真正强大之处在于它能够查询所有错误元数据,因此您不再局限于 issues
或 projects
的上下文,并且可以揭示所有应用程序的趋势和见解。让我们看一些例子。
创建一份报告,查看应用程序中 URL
端点中发生的所有错误。
event.type:error has:url
url
, platform.name
, count()
“Add to filter”
并更改表列来查看任一 URL
端点。URL
模式:无论您的代码是在移动设备、浏览器还是服务器上运行,未处理的致命错误都可能使您的应用程序崩溃。要找出这些崩溃发生的位置,请在 Discover
中运行以下查询:
event.type:error handled:no level:fatal
mechanism
, platform.name
, count()
要深入了解其中一种崩溃类型:
message
和 count()
。要找出代码库中哪些文件生成的错误最多,请在 Discover
中运行以下查询:
event.type:error has:stack.filename
stack.filename
, count()
, count_unique(issue)
更改您的 “Display”
选择以将当前时间段与前一时间段进行比较。
您可以通过将特定文件名添加到过滤器并更改表列以显示该文件中的主要错误罪魁祸首来继续探索特定文件名:
要了解在发布新版本时特定项目的健康状况如何随着时间的推移而改善(或不改善),请创建以下查询:
event.type:error
release
, count()
, count_unique(issue)
从这里您可以添加一个 release
作为过滤器并将列更改为 count()
和 title
以查看类似的错误。然后您可以单击 “Open Group”
图标来深入查看单个事件。您还可以在 “Results”
表的 “Releases”
中打开 release
。
timestamp.to_hour
和 timestamp.to_day
字段分别将 timestamp
向下舍入到最后一小时或一天。例如,timestamp
值为 Mar 12, 2021 2:26:50 PM UTC
的事件的 timestamp.to_hour
值为 Mar 12, 2021 2:00:00 PM UTC
,timestamp.to_day
值为 Mar 12, 2021 12:00:00 AM UTC
。这允许您对事件进行分组。例如,您可以显示每小时至少命中两次的错误计数:
根据您在 User Settings > Account > Account Details
中的用户设置,所有时间戳都显示在您的首选时区中。
正如您现在可能已经注意到的那样,Discover 在获得对错误的可见性和洞察力方面非常有用。有关其他用例,请查看:
issues
正在消耗我的配额?