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

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

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

本页内容
  1. 检查最近的行
  2. 计算请求量和错误
  3. 仅在检查设备后添加延迟
  4. 保存前验证
  5. 继续

编写第一个 Telemetry SQL 查询

从一个问题开始,您可以从已知的合成行中验证其答案。本演练查询在前面的入门步骤中创建的 api_request_completed 表。

检查最近的行

从事件粒度而不是聚合开始:

SELECT
  timestamp_utc,
  request_id,
  route_template,
  status_code,
  latency_ms,
  release,
  environment
FROM api_request_completed
WHERE environment = 'development'
ORDER BY timestamp_utc DESC
LIMIT 100;

找到合成的 req_demo_001 行。如果缺失或输入错误,请返回 验证事件摄取和架构

计算请求量和错误

一旦原始行看起来正确,就在路由粒度处聚合:

SELECT
  route_template,
  COUNT(*) AS requests,
  SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END) AS server_errors,
  ROUND(
    100.0 * SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END)
      / NULLIF(COUNT(*), 0),
    2
  ) AS server_error_pct
FROM api_request_completed
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
  AND environment = 'development'
GROUP BY route_template
ORDER BY requests DESC;

分母是同一时间窗口内每条路线的请求量。如果查询稍后适应连接或使用空桶生成时间脊柱,NULLIF 会保护该划分。

仅在检查设备后添加延迟

SELECT
  route_template,
  COUNT(*) AS requests,
  approx_percentile_cont(0.5) WITHIN GROUP (ORDER BY latency_ms)
    AS p50_latency_ms,
  approx_percentile_cont(0.95) WITHIN GROUP (ORDER BY latency_ms)
    AS p95_latency_ms
FROM api_request_completed
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
  AND environment = 'development'
GROUP BY route_template
ORDER BY p95_latency_ms DESC;

在解释百分位数之前,请确认 latency_ms 是数字并且始终以毫秒为单位进行测量。请阅读 SQL 百分位数 了解稀疏组、近似函数和样本大小注意事项。

保存前验证

使用一个带有已知成功和失败请求的小装置。手动计算预期请求数和错误率,然后与 SQL 结果进行比较。

检查四件事:

  1. Grain: 一行代表一个已完成的请求。
  2. 分母: 故意包含或排除重试和内部流量。
  3. **窗口:**最新的不完整桶不与完整桶进行比较。
  4. 维度: 路由模板、版本和环境使用稳定值。

有效的SQL仍然可以回答错误的业务问题。将定义和排除与查询一起保存。

继续

使用 API 错误率配方 获得完整的架构、夹具、可视化和告警推荐。要在连接的合成数据库上进行练习,请打开 SaaS SQL实验室。然后继续 创建您的第一个仪表板和告警

相关产品功能

对结构化事件表运行只读 DataFusion SQL 并重用结果。

内容责任与技术参考

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

查看编辑规范