可观测性
Deno Deploy 提供全面的可观测性功能,帮助您了解应用性能、调试错误和监控使用情况。这些功能利用了 OpenTelemetry 以及 Deno 内置的 OpenTelemetry 集成。
Deno Deploy 中的三大主要可观测性功能是:
- 日志:应用代码发出的非结构化调试信息
- 跟踪:关于请求处理的结构化信息,包括每个步骤的执行时间及自动捕获的出站 I/O 操作
- 指标:关于应用性能和使用情况的结构化高层数据,例如请求数、错误数和延迟
日志 Jump to heading
Deno Deploy 中的日志通过标准的 console API 捕获,并可以在控制面板的日志页面中查询。
日志按应用组织。您可以使用搜索栏根据各种属性和消息内容过滤日志。
当日志在跟踪上下文中发出时,它们会与特定的跟踪和跨度关联。对于这类日志,日志界面会显示“查看跟踪”按钮,允许您在覆盖抽屉中打开相关跟踪,进行详细检查。
跟踪 Jump to heading
Deno Deploy 中的跟踪通过三种方式捕获:
- 内置操作自动跟踪:入站 HTTP 请求、出站 fetch 调用及其他系统操作会自动跟踪,且无法禁用。
- 支持框架自动跟踪:如 Next.js、Fresh 和 Astro 等框架内置了自动监控。具体支持的框架和操作可能随时间变化。
- 手动自定义监控:您的应用代码可以通过 OpenTelemetry API 创建新的跟踪或跨度。
跟踪按应用组织。搜索栏可让您根据各种属性和跨度名称过滤。
点击某个跟踪会打开跟踪覆盖抽屉,显示该跟踪中的所有跨度的瀑布视图。该视图展示每个跨度的开始时间、结束时间和持续时间,并按父跨度分组,根跨度位于最上方。
点击任一跨度,会在抽屉底部展示其详细信息,包括所有捕获的属性。例如,出站 HTTP 请求包含方法、URL 和状态码。
跨度详情部分还包括 “日志” 标签页,显示在该跨度上下文中发出的所有日志。
您可点击任意跟踪上的“查看日志”,在日志页打开该跟踪 ID 预填的搜索栏,显示与该跟踪相关的所有日志。
指标 Jump to heading
Deno Deploy 中的指标自动捕获多种操作数据,如入站 HTTP 请求和出站 fetch 调用,且无法禁用。
指标按应用组织,并以时间序列图的形式展示其随时间变化的数值。您可通过搜索栏按各种属性过滤指标。
过滤 Jump to heading
日志、跟踪和指标可使用以下通用属性进行过滤:
- 版本:发出数据的应用版本 ID
- 上下文:数据发出的上下文(“生产”或“开发”)
对日志和跟踪,额外提供以下过滤器:
- 跟踪:包含该日志或跨度的跟踪 ID
仅对跟踪提供以下额外过滤器:
- HTTP 方法:触发跟踪的请求的 HTTP 方法
- HTTP 路径:触发跟踪的请求路径
- HTTP 状态:响应的 HTTP 状态码
时间范围过滤 Jump to heading
默认情况下,可观测性页面显示过去一小时的数据。您可以通过页面右上角的时间范围过滤器更改此设置。
您可以选择预定义的时间范围,如“最近 1 小时”、“最近 24 小时”或“最近 7 天”,也可以点击“自定义”按钮设置自定义时间范围。
自定义时间范围可以是绝对时间段(具体的开始和结束时间),也可以是相对时间段(例如 3 天前、1 小时后等)。相对时间段使用与 Grafana 相同的语法:
now- 当前时间now-1h- 1 小时前now/h- 当前小时的开始时间now-1h/h- 前一个小时的开始时间now/d+3h- 当天开始时间加 3 小时now-1d/d- 前一天的开始时间