您的代理现在可以通过本地追踪调试 Workers
今天开始,`wrangler dev` 和 `vite dev` 自动捕获 [OpenTelemetry 追踪](https://developers.cloudflare.com/workers/observability/traces/) 用于本地 Worker 调用。当 Cloudflare 的工具检测到代理会话时,它会将代理指向 [本地浏览器 API](https://developers.cloudflare.com/workers/local-development/local-explorer/#use-with-ai-coding-agents),这是一个本地调试 API,代理可在此查询那些追踪记录。您无需安装 SDK、启用追踪、配置代理,甚至在提示中提及可观察性。
一个提示可以简单到:
这基于多年来在本地开发上的投资,从引入 [Miniflare](https://blog.cloudflare.com/miniflare/) 到在 [Wrangler 3](https://blog.cloudflare.com/wrangler3/) 中将本地模式设置为默认。本地追踪使编程代理在代码部署之前,可以从开发环境中获得结构化反馈。
## 代理自动发现本地浏览器 API
作为其正常工作流的一部分,代理启动 `wrangler dev` 或 `vite dev` 来运行和测试 Worker。当开发服务器识别到支持的编码代理会话时,它会自动打印类似这样的提示:
[本地浏览器](http://developers.cloudflare.com/workers/local-development/local-explorer)是一个基于浏览器的界面和 REST API,用于查看和编辑本地资源数据,以及在开发过程中查询可观察性数据。该 API 根提供了 OpenAPI 架构,因此代理可以在运行时发现可用的端点,而无需硬编码指令。
自动捕获的追踪可通过该 API 中的只读可观察性端点访问,连同其相关的控制台日志。代理可以查询这些遥测数据,然后使用 API 的其他操作检查本地 Workers 和绑定,或检查 D1、KV、R2、Durable Objects 和 Workflows 中的状态。
## 找到故障并验证修复
考虑 `POST /api/orders`,它从 KV 检索一个活动购物车,将结账细节保存到 D1,并向队列发送消息以进行订单处理。在架构更改后,该端点突然开始返回 500 状态。
### 没有本地追踪
500 状态并未指明哪个操作失败。代理围绕 KV、D1 和队列添加日志,重新运行请求,检查输出,并重复执行。每个循环都耗时,并且在代理从文本中重建请求时消耗代币。
### 有本地追踪
代理重现错误并查询只读可观察性端点。追踪显示 KV 读取成功,但 D1 插入失败,提示 `no such column: delivery_window`,而队列从未被调用。您的代理使用本地浏览器 API 访问与此处看到的相同追踪数据:
代理使用 API 检查 D1 架构。它发现添加 `delivery_window` 的迁移存在于代码库中,但尚未应用到本地,应用后再次发送请求并查询新的追踪。问题解决。
在一个本地循环中,代理识别出失败的操作,修复本地环境,并验证结果,而无需部署或添加临时日志。
## 在本地浏览器中探索追踪和日志
代理通过 API 查询本地遥测,但您作为用户可以在 [本地浏览器](https://developers.cloudflare.com/workers/local-development/local-explorer/) 中可视化相同的数据,这是集成在本地开发服务器中的基于浏览器的界面。除了浏览本地绑定状态外,您还可以选择一个请求,以检查其跨度、时间、属性、错误和相关的控制台日志。
本地浏览器在与您的 Worker 同一 localhost 源上运行,而不是在 Cloudflare 控制面板中。在 Wrangler 中按下 `e` 或访问`/cdn-cgi/explorer` 在本地服务器上打开它。
## 它是如何工作的
当我们推出 [Workers 追踪](https://blog.cloudflare.com/workers-tracing-now-in-open-beta/) 时,我们直接将仪表化构建到了 [workerd](https://github.com/cloudflare/workerd) 中,这是驱动 Workers 的开源运行时。无需 SDK 或任何代码更改,运行时为以下内容捕获跨度:
- **Fetch 调用**:所有出站的 HTTP 请求,包括时间、状态码和请求元数据。
- **绑定调用**:与 KV、R2、D1、Durable Objects、队列和其他绑定的每次交互。
- **处理程序调用**:每次调用的完整生命周期,从 `fetch` 到 `scheduled` 到队列处理程序。
任何由您的应用程序发出的 [自定义跨度](https://developers.cloudflare.com/workers/observability/traces/custom-spans/) 也将与这些自动跨度一并出现。
[Wrangler](https://developers.cloudflare.com/workers/local-development/#start-a-local-development-server) 和 [Cloudflare Vite 插件](https://developers.cloudflare.com/workers/vite-plugin/) 使用 Miniflare 在相同运行时中本地运行您的 Worker,使得这项仪表化在本地开发中可用。
Miniflare 收集运行时事件和控制台输出,将它们组装成 OpenTelemetry 追踪和相关的日志,然后将遥测写入一个内部 SQLite 支持的 Durable Object,作为本地追踪存储。 本地浏览器 API 通过本地开发服务器公开这些数据,代理可以轻松查询追踪和日志并检查本地状态。
## 开始使用
更新 Wrangler 或 Cloudflare Vite 插件,具体取决于您的项目使用哪个:
然后像往常一样请求您的代理进行本地调试。您的代理现在已能够编写并运行您的 Worker —— 现在可以看到发生了什么,修复失败的内容,并在您部署之前验证结果。查看 [文档](http://developers.cloudflare.com/workers/local-development/local-explorer/#api) 了解更多信息!
---
原文链接:[点击查看](https://blog.cloudflare.com/local-tracing/)
一个提示可以简单到:
这基于多年来在本地开发上的投资,从引入 [Miniflare](https://blog.cloudflare.com/miniflare/) 到在 [Wrangler 3](https://blog.cloudflare.com/wrangler3/) 中将本地模式设置为默认。本地追踪使编程代理在代码部署之前,可以从开发环境中获得结构化反馈。
## 代理自动发现本地浏览器 API
作为其正常工作流的一部分,代理启动 `wrangler dev` 或 `vite dev` 来运行和测试 Worker。当开发服务器识别到支持的编码代理会话时,它会自动打印类似这样的提示:
[本地浏览器](http://developers.cloudflare.com/workers/local-development/local-explorer)是一个基于浏览器的界面和 REST API,用于查看和编辑本地资源数据,以及在开发过程中查询可观察性数据。该 API 根提供了 OpenAPI 架构,因此代理可以在运行时发现可用的端点,而无需硬编码指令。
自动捕获的追踪可通过该 API 中的只读可观察性端点访问,连同其相关的控制台日志。代理可以查询这些遥测数据,然后使用 API 的其他操作检查本地 Workers 和绑定,或检查 D1、KV、R2、Durable Objects 和 Workflows 中的状态。
## 找到故障并验证修复
考虑 `POST /api/orders`,它从 KV 检索一个活动购物车,将结账细节保存到 D1,并向队列发送消息以进行订单处理。在架构更改后,该端点突然开始返回 500 状态。
### 没有本地追踪
500 状态并未指明哪个操作失败。代理围绕 KV、D1 和队列添加日志,重新运行请求,检查输出,并重复执行。每个循环都耗时,并且在代理从文本中重建请求时消耗代币。
### 有本地追踪
代理重现错误并查询只读可观察性端点。追踪显示 KV 读取成功,但 D1 插入失败,提示 `no such column: delivery_window`,而队列从未被调用。您的代理使用本地浏览器 API 访问与此处看到的相同追踪数据:
代理使用 API 检查 D1 架构。它发现添加 `delivery_window` 的迁移存在于代码库中,但尚未应用到本地,应用后再次发送请求并查询新的追踪。问题解决。
在一个本地循环中,代理识别出失败的操作,修复本地环境,并验证结果,而无需部署或添加临时日志。
## 在本地浏览器中探索追踪和日志
代理通过 API 查询本地遥测,但您作为用户可以在 [本地浏览器](https://developers.cloudflare.com/workers/local-development/local-explorer/) 中可视化相同的数据,这是集成在本地开发服务器中的基于浏览器的界面。除了浏览本地绑定状态外,您还可以选择一个请求,以检查其跨度、时间、属性、错误和相关的控制台日志。
本地浏览器在与您的 Worker 同一 localhost 源上运行,而不是在 Cloudflare 控制面板中。在 Wrangler 中按下 `e` 或访问`/cdn-cgi/explorer` 在本地服务器上打开它。
## 它是如何工作的
当我们推出 [Workers 追踪](https://blog.cloudflare.com/workers-tracing-now-in-open-beta/) 时,我们直接将仪表化构建到了 [workerd](https://github.com/cloudflare/workerd) 中,这是驱动 Workers 的开源运行时。无需 SDK 或任何代码更改,运行时为以下内容捕获跨度:
- **Fetch 调用**:所有出站的 HTTP 请求,包括时间、状态码和请求元数据。
- **绑定调用**:与 KV、R2、D1、Durable Objects、队列和其他绑定的每次交互。
- **处理程序调用**:每次调用的完整生命周期,从 `fetch` 到 `scheduled` 到队列处理程序。
任何由您的应用程序发出的 [自定义跨度](https://developers.cloudflare.com/workers/observability/traces/custom-spans/) 也将与这些自动跨度一并出现。
[Wrangler](https://developers.cloudflare.com/workers/local-development/#start-a-local-development-server) 和 [Cloudflare Vite 插件](https://developers.cloudflare.com/workers/vite-plugin/) 使用 Miniflare 在相同运行时中本地运行您的 Worker,使得这项仪表化在本地开发中可用。
Miniflare 收集运行时事件和控制台输出,将它们组装成 OpenTelemetry 追踪和相关的日志,然后将遥测写入一个内部 SQLite 支持的 Durable Object,作为本地追踪存储。 本地浏览器 API 通过本地开发服务器公开这些数据,代理可以轻松查询追踪和日志并检查本地状态。
## 开始使用
更新 Wrangler 或 Cloudflare Vite 插件,具体取决于您的项目使用哪个:
然后像往常一样请求您的代理进行本地调试。您的代理现在已能够编写并运行您的 Worker —— 现在可以看到发生了什么,修复失败的内容,并在您部署之前验证结果。查看 [文档](http://developers.cloudflare.com/workers/local-development/local-explorer/#api) 了解更多信息!
---
原文链接:[点击查看](https://blog.cloudflare.com/local-tracing/)
评论
暂无评论。