これは、統合された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リクエスト
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の2つのパラメータを受け入れます。両方の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 |