编写代码时,进展速度无法超过调试的速度。
我们 Cloudflare 的目标是为开发人员提供相应工具,以前所未有的速度部署应用程序。也就是提供相应工具来执行所有事项,从初始化 Workers 项目到清晰了解应用程序成功提供生产流量的情况,全部包括在内。
去年我们引入了 wrangler tail
, 让您能够访问 Workers 日志的实时流,帮助找出错误,调试应用程序。Workers Trace Events Logpush(简称 Workers Logpush)延伸了此功能,可用于将 Workers 日志发送到您选择的对象存储目标或分析平台。
Workers Logpush 现在可供 Workers 付费方案的所有客户使用!继续阅读,了解如何开始使用,并了解定价信息。
快速进展,而_不会_造成破坏
随着 Cloudflare Workers 等平台兴起并逐渐取代容器和 VM,现在部署应用程序只需几分钟。但是,在构建应用程序时,您选择的任何技术堆栈都存在自己的一些折衷。
作为开发人员,选择 Workers 意味着您不需要担心任何底层架构。您只需编写代码,一切就能正常运行(希望如此!)。对于这种样式的平台,一种常见的批评是,可观察性会变得更加困难。
我们想要改变此状况。
多年来,我们对所提供的测试和调试工具进行了改进,这些工具包括 wrangler dev
, Miniflare
以及最近的开源运行时 workerd
。 进行这些改进后,在本地调试以及运行单元测试就轻松得多了。但是,难免还是有一些只能在生产环境中重现的边缘情况或错误。
如果确实有什么被破坏,有请 Workers Logpush 隆重登场
Wrangler tail 让您能够实时查看日志,但我们也听到一些开发人员表示,您还想为自己的服务设置监控,并有一个历史记录可供回顾之用。Workers Logpush 包括有关请求、 console.log()
消息和所有未捕获异常的元数据。为让您大致了解情况,下面是一个示例日志行:
Logpush 支持最常见的可观察性工具。将日志发送到 Datadog、New Relic 甚至是 R2 进行存储和临时查询。
{
"AccountID":12345678,
"Event":{
"RayID":"7605d2b69f961000",
"Request":{
"URL":"https://example.com",
"Method":"GET"
},
"Response":{
"status":200
},
"EventTimestampMs":1666814897697,
"EventType":"fetch",
"Exceptions":[
],
"Logs":[
{
"Level":"log",
"Message":[
"please work!"
],
"TimestampMs":1666814897697
}
],
"Outcome":"ok",
"ScriptName":"example-script"
}
定价
Workers Logpush 现在可供 Workers 付费方案和 Enterprise 方案的客户使用!我们希望制定公道合理的价格,让开发人员负担得起。Workers Logpush 的定价是 0.05 美元/百万请求,并且我们只针对在应用过滤或采样后导致日志传递到最终目标的请求向您收费。其中还包括每月 1000 万个请求的使用量。
配置
Logpush 的设置非常简单。
1. 创建 Logpush 作业。以下示例将 Workers 日志发送到 R2。
在 Logpush 中,您还可以配置过滤器和采样率,更好地控制发送到所配置目标的数据量。例如,如果您只希望针对导致异常的情况接收日志,可以在 logpull_options
:
curl -X POST 'https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/logpush/jobs' \
-H 'X-Auth-Key: <API_KEY>' \
-H 'X-Auth-Email: <EMAIL>' \
-H 'Content-Type: application/json' \
-d '{
"name": "workers-logpush",
"logpull_options": "fields=Event,EventTimestampMs,Outcome,Exceptions,Logs,ScriptName",
"destination_conf": "r2://<BUCKET_PATH>/{DATE}?account-id=<ACCOUNT_ID>&access-key-id=<R2_ACCESS_KEY_ID>&secret-access-key=<R2_SECRET_ACCESS_KEY>",
"dataset": "workers_trace_events",
"enabled": true
}'| jq .
2. 在您的 Workers 脚本上启用日志记录
"filter":"{\"where\": {\"key\":\"Outcome\",\"operator\":\"eq\",\"value\":\"exception\"}}"
您可以通过将新属性 logpush = true 添加到 wrangler.toml文件来实现此目的。这可以在顶级配置或环境中添加。使用此属性的任何新脚本都将自动由 Logpush 作业提取。
立即开始使用!
Workers 付费方案和 Enterprise 方案的客户现在都可以开始使用 Workers Logpush!此处提供了有关如何开始使用的完整指南。