跳转到内容
Telemetry
SQL查询示例集合

API 可靠性 SQL 查询示例

计算结构化 API 事件的请求错误率、延迟百分位数、发布回归、错误预算和客户影响。

共同事件契约

使这些查询可重用的字段

  • timestamp_utc、route_template、方法和 status_code
  • latency_ms、request_id、版本、环境和依赖项
  • 当客户影响分析获得批准时为 team_id 或 account_id

SQL 之前的定义

查询无法为您做出的决定

  1. 1在计算比率之前定义哪些响应算作失败。
  2. 2设置最小请求量,以便安静的路由不会占主导地位。
  3. 3保持路线模板和版本足够稳定,以便随着时间的推移进行比较。

推荐顺序

先建立检测,然后诊断

分析模式

让结果解释决定

按请求量标准化

配对失败会根据速率和最小流量阈值进行计数,因此安静的路由无法超越真正有风险的端点。

比较稳定的尺寸

按路由模板、版本、依赖项或环境而不是原始 URL 和其他无界值进行分组。

将检测与影响联系起来

从服务级别更改开始,然后确定促成此更改的客户、版本和依赖项。

完整的查询示例

复制查询,然后验证假设

入门api_requests

按路由计算API错误率

使用 SQL 按 5xx 错误率对 API 路由进行排名,同时保护结果免受低音量噪音的影响。

哪些 API 路由具有最高的有意义 5xx 错误率?

查看 SQL 和结果
中级api_requests

计算 p50、p95 和 p99 API 延迟

使用 DataFusion 兼容的百分位数 SQL 按端点比较中值和尾部延迟。

哪些端点的尾部延迟最差?

查看 SQL 和结果
中级api_requests

计算 API 错误预算消耗率

将每小时的请求失败转化为 SLO 消耗率系列,显示允许的错误预算消耗的速度。

API 消耗其 99.9% 可用性预算的速度有多快?

查看 SQL 和结果
中级api_requests

按版本比较 API 可靠性

比较跨应用程序版本的流量、5xx 速率和 p95 延迟,无需将每个部署后更改都归因于部署。

哪些版本会出现更严重的 API 错误或尾部延迟?

查看 SQL 和结果
入门api_requests

按客户影响对错误指纹进行排名

按发生次数和受影响的帐户对标准化应用程序错误进行排名,而不是让一个重试循环主导事件视图。

哪些错误组影响最多的客户帐户?

查看 SQL 和结果
入门api_requests

按路由计算API超时率

按超时率对路由进行排名,同时保留请求量和配置的超时边界。

哪些 API 路由超时的频率足以影响用户?

查看 SQL 和结果
中级dependency_calls

比较依赖性 p95 延迟

查找对请求造成最大尾部延迟的数据库、API、缓存和队列。

哪些下游依赖项的尾部延迟和故障率最差?

查看 SQL 和结果
中级api_requests

根据 SLO 衡量 API 可用性

计算每日可用性并显示服务是否达到其明确的目标。

每项服务是否达到其每日可用性目标?

查看 SQL 和结果
入门api_throughput_events

按路由计算 API 请求吞吐量

通过稳定的 API 路由计算观察到的每分钟请求数,并在吞吐量旁边保留错误量。

哪些 API 路由每分钟处理的请求最多?

查看 SQL 和结果
中级api_attempt_events

测量 API 429 速率限制恢复

测量速率限制请求在稍后尝试中恢复的频率,而不将每次重试都视为新请求。

收到 HTTP 429 的请求重试后能否成功恢复?

查看 SQL 和结果
入门feature_rollout_events

比较功能推出错误率

比较一个版本的功能标记部署和控制组之间的请求错误和平均延迟。

功能标志的推出是否不如其对照群体可靠?

查看 SQL 和结果
中级incident_account_impact_events

按计划衡量事件对客户的影响

按计划计算受影响的帐户和平均影响持续时间,而无需暴露客户名称或原始请求数据。

每个计划中有多少个账户受到该事件的影响?

查看 SQL 和结果

在阈值之前调整事件契约

保留分析模式,但根据您自己的事件验证表名称、字段类型、业务定义、时间窗口和最小量规则。每个已发布的查询也会针对具有固定引擎的空类型表进行规划和执行。