대시보드 보고서 - 통합된 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 엔드포인트, 시스템 통합, 또는 공개 데이터에 접근하는 제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
6개의 좋아요