仪表板报告 - 合并的 API 请求

这是合并 API 请求的仪表板报告的 SQL 版本。

本报告按日期显示 API 使用情况统计信息,跟踪常规 API 请求和用户 API 请求。本报告有助于您随着时间的推移监控 Discourse 实例上的 API 使用模式。它区分了常规 API 请求和用户 API 请求,分别显示两者以及总计。

数据来自 application_requests 表,该表跟踪系统中的不同请求类型。对于 API 使用情况,我们关注请求类型 11(常规 API)和 12(用户 API)。

-- [params]
-- date :start_date = 2023-01-01
-- date :end_date = 2025-12-31

SELECT 
  ar.date,
  -- API requests
  SUM(CASE WHEN ar.req_type = 11 THEN ar.count ELSE 0 END) AS api,
  SUM(CASE WHEN ar.req_type = 12 THEN ar.count ELSE 0 END) AS user_api,
  -- Total API requests
  SUM(CASE WHEN ar.req_type IN (11, 12) THEN ar.count ELSE 0 END) AS total_api_requests
FROM 
  application_requests ar
WHERE 
  ar.date BETWEEN :start_date AND :end_date
GROUP BY 
  ar.date
ORDER BY 
  ar.date DESC

参数

  • 该查询接受两个参数 :start_date:end_date,它们定义了报告的日期范围。两个日期参数都接受 YYYY-MM-DD 格式的日期。

结果

  • date:请求计数的日期
  • api:常规 API 请求计数(req_type = 11)
  • user_api:用户 API 请求计数(req_type = 12)
  • total_api_requests:所有 API 请求的总和

常规 API 请求和用户 API 请求之间有什么区别?

  • 常规 API 请求(req_type = 11):这些是系统发出的不需要用户身份验证的 API 调用。它们包括公共 API 端点、系统集成或访问公共数据的第三方服务。
  • 用户 API 请求(req_type = 12):这些是使用用户身份验证发出的 API 调用,通常代表代表特定用户执行的操作,并且需要使用 API 密钥。

示例结果

date api user_api total_api_requests
2023-09-15 34,582 7,249 41,831
2023-09-14 32,104 6,893 38,997
2023-09-13 33,756 7,122 40,878
2023-09-12 35,122 8,562 43,684
2023-09-11 36,475 9,234 45,709
2023-09-10 12,563 3,298 15,861
2023-09-09 10,782 2,982 13,764
2023-09-08 33,892 7,456 41,348
2023-09-07 31,765 7,120 38,885
2023-09-06 32,451 7,321 39,772
6 个赞