Отчет по панели управления: консолидированные запросы API

Это SQL-версия отчёта панели управления по консолидированным запросам к API.

Данный отчёт отображает статистику использования API по датам, отслеживая как обычные запросы к API, так и пользовательские запросы к API. Он помогает контролировать паттерны использования API на вашем экземпляре Discourse с течением времени. Отчёт различает обычные запросы к 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 запросы
  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,
  -- Всего запросов к API
  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 лайков