Skip to main content

Module profile

Module profile 

Source
Expand description

开发模式请求级调用栈耗时采集 (Request Profile)

在 dev 环境下自动采集每个 #[tracing::instrument] 的 self/inclusive 耗时, 支持终端树形输出、热点高亮、JetBrains/Cursor 源码跳转链接。

§功能特性

  • Self/Inclusive 耗时: 区分自身耗时和包含子调用的总耗时
  • 热点高亮: 自动标记 self 耗时最大的 span
  • 源码跳转: JetBrains 过滤器格式 / Cursor/VS Code OSC 8 链接
  • Server-Timing: 生成 Server-Timing 响应头供前端联调
  • JSONL 导出: DEV_PROFILE_JSONL 环境变量控制 JSONL 文件输出

§环境变量

变量默认值说明
DEV_PROFILE_MIN_MS0.1最小展示阈值 (ms)
DEV_PROFILE_LINK_SCHEME自动检测源码跳转协议
DEV_PROFILE_NO_LINKS-禁用源码链接
DEV_PROFILE_JSONL-JSONL 输出文件路径
DEV_SERVER_TIMING1是否输出 Server-Timing 头

Structs§

DevProfileLayer
dev 模式 tracing Layer,自动采集 span 耗时并生成调用栈树 开发模式 span 耗时 Layer
ProfileHotspot
热点 span 摘要(JSONL 用)
ProfileReport
单次 HTTP 请求 profile 报告(JSONL 一行)
ProfileSpanNode
单个 span 节点(JSONL 用)
RequestProfile
单个 HTTP 请求内的 span 聚合

Functions§

append_jsonl_report
将 profile 报告追加到 JSONL 文件(DEV_PROFILE_JSONL 环境变量)
http_request_span
创建 HTTP 根 span
is_active
是否处于请求 profiling 上下文
min_show_duration
读取最小展示阈值(毫秒),默认 0.1ms
record_close
写入 span 关闭事件(Layer 调用)
record_enter
写入 span 进入事件(Layer 调用)
scope
在请求 profiling 作用域内执行 future
span_label
从 tracing metadata 组装展示名