监控与日志记录
为您的边缘应用设置监控和日志记录,以跟踪性能并调试问题
监控与日志记录 是 CoddyKit 上的免费 Edge Computing with Cloudflare Workers & Deno 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Edge Computing with Cloudflare Workers & Deno 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Edge Computing with Cloudflare Workers & Deno 课程共包含 4 节课。
本课时的部分内容尚未翻译,以英文显示。
Why Monitor & Log Edge Apps?
When your applications run at the edge, they're distributed globally. This makes it challenging to know what's happening without good visibility.
Monitoring helps you track performance metrics like request times and error rates across your entire system. Logging gives you detailed records of individual events, like requests or errors, which are crucial for debugging.
Basic Logging: console.log
The simplest way to log information in a Cloudflare Worker is by using console.log(). This works much like logging in a browser or Node.js environment.
Messages sent to console.log() are captured by Cloudflare and can be viewed in your Worker's dashboard or exported using Logpush.
Basic Logging in Action
Try running this Worker. It logs the incoming request's URL to the console. When you test it, check your Worker's logs in the Cloudflare dashboard to see the output.
export default {
async fetch(request, env, ctx) {
console.log("Request received for:", request.url);
return new Response("Hello from basic logging!");
}
};The Need for Structured Logs
While console.log() is easy, plain text logs can be hard to parse and analyze at scale. Imagine sifting through thousands of lines of text!
Structured logging involves outputting logs in a consistent, machine-readable format, like JSON. This makes it much easier for monitoring tools to process and query your logs.
Cloudflare Logpush Overview
Cloudflare's Logpush service allows you to export your Worker logs to various destinations, such as cloud storage (AWS S3, Google Cloud Storage) or analytics platforms.
This is essential for long-term storage, advanced querying, and integrating with your existing monitoring infrastructure.
What to Include in Logs?
Good structured logs contain useful context. Consider including:
- Timestamp: When the event occurred.
- Level: (e.g., INFO, WARN, ERROR) for severity.
- Request ID: To trace a single request through its lifecycle.
- URL & Method: Details of the incoming request.
- Latency: How long the operation took.
- Error Details: Stack traces, error messages.
Structured Logging Example
This Worker logs request details as a JSON string, including a simple latency measurement. This format is easily parsable by log analysis tools.
export default {
async fetch(request, env, ctx) {
const start = Date.now();
const response = new Response("Hello from structured logs!");
const latency = Date.now() - start;
const logEntry = {
timestamp: new Date().toISOString(),
level: "INFO",
url: request.url,
method: request.method,
latencyMs: latency,
requestId: crypto.randomUUID()
};
console.log(JSON.stringify(logEntry));
return response;
}
};Introduction to Edge Metrics
While logs tell you 'what happened,' metrics tell you 'how much' or 'how often.' Metrics are numerical measurements captured over time, used to track the health and performance of your application.
Common metrics include requests per second, error rates, CPU usage, and memory consumption. They are aggregated and visualized in dashboards.
Custom Metrics in Workers
Cloudflare Workers provide built-in analytics, but you can also add custom metrics. One simple way is to use response headers to expose performance data that can be scraped or analyzed.
Here, we add a X-Worker-Latency header. More advanced metrics might use external services or Cloudflare's ctx.waitUntil to send data.
export default {
async fetch(request, env, ctx) {
const start = Date.now();
const response = new Response("Hello from custom metrics!");
const latency = Date.now() - start;
// Add a custom header as a simple metric
response.headers.set("X-Worker-Latency", latency.toString());
console.log(`Request processed in ${latency}ms`);
return response;
}
};Monitoring Tools & Dashboards
Once you have logs and metrics, you need tools to make sense of them. Cloudflare provides basic analytics, but for advanced analysis, you'll integrate with:
- Log Management Systems: Splunk, ELK Stack, DataDog, Sumo Logic.
- Monitoring Platforms: Grafana, Prometheus, New Relic, Dynatrace.
These tools help you visualize trends, set up alerts, and quickly identify issues.
Quick Check on Logging
You are debugging an intermittent error in your Cloudflare Worker. You've been using console.log("Error occurred!") to catch issues.
Which change would MOST improve your ability to diagnose the problem quickly?
Recap: Monitoring & Logging
Great job! In this lesson, you learned about the critical role of monitoring and logging for edge applications.
console.log()is your basic logging tool.- Structured logging (e.g., JSON) provides machine-readable, actionable insights.
- Cloudflare Logpush helps export logs for advanced analysis.
- Metrics track performance trends, often exposed via custom headers or dedicated services.
- Using external monitoring tools can greatly enhance visibility and debugging capabilities.
Keeping an eye on your edge apps ensures they perform optimally!
常见问题解答
「监控与日志记录」课时是免费的吗?
是的 — 「监控与日志记录」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Edge Computing with Cloudflare Workers & Deno 课程的其余内容,请升级到 CoddyKit PRO。 Edge Computing with Cloudflare Workers & Deno 课程共包含 4 节课。
「监控与日志记录」这节课中我会学到什么?
为您的边缘应用设置监控和日志记录,以跟踪性能并调试问题 你通过在浏览器中直接运行的动手代码来练习 Edge Computing with Cloudflare Workers & Deno,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Edge Computing with Cloudflare Workers & Deno 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Edge Computing with Cloudflare Workers & Deno 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「监控与日志记录」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Edge Computing with Cloudflare Workers & Deno 课中编写并运行代码吗?
能。每节 Edge Computing with Cloudflare Workers & Deno 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。