跳转到内容
Telemetry
浏览文档
指南更新于 2026年7月27日由 Telemetry 编辑团队和产品团队审核阅读约需 3 分钟

让编程智能体使用这篇文档

打开 Claude Code、Codex、Cursor 或其他编码代理的集中提示包,然后将其适应此处介绍的工作流程。

本页内容
  1. 先决条件
  2. 1.安装Telemetry SDK
  3. 2、初始化Telemetry
  4. 3. 创建心跳检查
  5. 4. 安排心跳
  6. 5. 查询正常运行时间
  7. 6. 探索 Telemetry 的正常运行时间
  8. 后续步骤

监控网站正常运行时间

心跳记录成功和失败的检查。这使得中断变得可见,但也揭示了监控作业本身何时停止发送数据。

网站心跳时间线,包含成功检查、两次 HTTP 503 故障和一次十分钟事件

定期检查将停机时间和意外的沉默转变为可查询的事件。

使用 Telemetry SDK 为每次网站检查发送心跳,然后查询失败的检查和数据发送中断的时段。

先决条件

  • Telemetry 的有效 API 密钥
  • 对JavaScript和Node.js有基本了解

1.安装Telemetry SDK

首先,您需要在项目中安装 Telemetry SDK。如果您还没有这样做,请运行以下命令:

npm install telemetry-sh

2、初始化Telemetry

安装SDK后,在您的项目中导入并初始化Telemetry。将 YOUR_API_KEY 替换为您实际的 Telemetry API 密钥。

import telemetry from "telemetry-sh";

telemetry.init("YOUR_API_KEY");

3. 创建心跳检查

要监控正常运行时间,您可以设置心跳功能,定期向 Telemetry 服务发送 ping。心跳将记录您网站的状态,使您可以监控其可用性。

这是心跳函数的基本示例:

const sendHeartbeat = async (url) => {
  const startedAt = Date.now();

  try {
    const response = await axios.get(url);

    telemetry.log("website_uptime", {
      url: url,
      status_code: response.status,
      status: "success",
      is_online: true,
      latency_ms: Date.now() - startedAt
    });
  } catch (error) {
    telemetry.log("website_uptime", {
      url: url,
      status_code: error.response ? error.response.status : 0,
      status: "error",
      is_online: false,
      error_type: error.code ?? "request_failed",
      latency_ms: Date.now() - startedAt
    });
  }
};

4. 安排心跳

要持续监控正常运行时间,您需要定期发送心跳。您可以通过使用 setInterval 定期运行 sendHeartbeat 函数来实现此目的。下面是每 5 分钟检查一次网站的示例:

const urlToMonitor = "https://example.com"; // Replace with your website URL
const interval = 5 * 60 * 1000; // 5 minutes in milliseconds

setInterval(() => {
  sendHeartbeat(urlToMonitor);
}, interval);

5. 查询正常运行时间

记录足够的数据后,您可以使用 Telemetry 的查询 API 进行查询,以分析网站的正常运行时间。例如,您可以计算您的网站在线时间的百分比:

const results = await telemetry.query(`
  SELECT
    url,
    COUNT(*) AS total_pings,
    SUM(CASE WHEN is_online THEN 1 ELSE 0 END) AS online_pings,
    (SUM(CASE WHEN is_online THEN 1 ELSE 0 END) * 100.0 / COUNT(*)) AS uptime_percentage
  FROM
    website_uptime
  WHERE
    timestamp_utc >= now() - INTERVAL '30 days'
  GROUP BY
    url
`);

console.log(results);

6. 探索 Telemetry 的正常运行时间

Telemetry 的 UI 允许您以交互方式可视化和探索正常运行时间数据。访问 Telemetry仪表板 并使用您的凭据登录,以根据您的正常运行时间监控数据创建仪表板、图表等。

后续步骤

正常运行时间百分比无法检测停止运行的监视器。添加 缺少心跳食谱 并在最新检查早于预期计划加上一小段宽限期时发出告警。

相关功能

将审核的 SQL 提升到自有阈值和响应工作流程中。

页面作者和参考资料

Telemetry 编辑团队负责维护本文;产品团队审核功能行为、示例和适用范围。

我们如何审核文档