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