통합 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 엔드포인트, 시스템 통합, 또는 공개 데이터에 접근하는 제3자 서비스가 포함됩니다.
- 사용자 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 |