Kinsta APIの新しいエンドポイントをリリースしました。アプリケーションに関する詳細な分析データを確認し、MyKinstaの企業のユーザーに関する情報を取得することができるようになります。
アプリケーションホスティングでは、MyKinsta(「アプリケーション」>(アプリ名)>「分析」)を介して、アプリケーションの帯域幅、ビルド時間、ランタイム、CPU・メモリ使用量、平均応答時間、HTTPリクエスト、および最も遅いリクエストの情報を確認することができます。
今後は、Kinsta APIを介してこれらの指標にプログラム経由でアクセスすることもできます。
アプリケーションの新メトリクスエンドポイント
Kinsta APIを介して、以下の情報にアクセスすることができます。
- 帯域幅:選択した時間内に送信されたデータの合計値
- ビルド時間:アプリケーションのビルドに要した時間の合計
- ランタイム:ビルド、デプロイ後のアプリケーションによる動作の合計時間
- HTTPリクエスト:1分あたりの平均リクエスト数
- 平均応答時間(応答時間のクエリが95または50の値を持つ
percent
パラメータを含む場合、P95レイテンシまたはP50レイテンシの応答時間が返される) - 最も遅いリクエスト:最も時間のかかっているアプリケーションに対するリクエスト
- CPU使用量:選択した期間の総CPU使用量の平均を、インスタンスのCPUリソースに対する割合で表示
- メモリ使用量:選択した期間のメモリ(RAM)使用量の平均値
これらの指標にアクセスするために必要なパスおよびクエリパラメータは、Kinsta APIドキュメントでご紹介しています。たとえば、毎日の帯域幅使用量のデータを取得するには、GETリクエストを以下の場所に送信します。
https://api.kinsta.com/v2/applications/{id}/metrics/bandwidth
このリクエストには、以下のパラメータが必要になります。
- PATH PARAMETERS(パスパラメータ)
id
─アプリケーションIDで、APIのURLに追加される
- QUERY PARAMETERS(クエリパラメータ)
interval_in_seconds
─返される値の間隔を24時間にするには、24時間を秒に変換して「86400」とするtimeframe_start
およびtimeframe_end
─必須のパラメータで、ISO 8601の日付時刻フォーマット(YYYY-MM-DDThh:mm:ss.sssZ
)を使用
ISO 8601の日付および時刻の書式は、以下のようになります。
- YYYY-MM-DD(日付)
- YYYY:西暦
- MM:月を2桁で表記(01~12)
- DD:日を2桁で表記(01~31)
- T:日付と時刻を明確に区別するための区切り文字
- hh:mm:ss.sss(時刻)
- hh:時を2桁で表記(00~23)
- mm:分を2桁で表記(00~59)
- ss:秒を2桁で表記(00~59)
- .sss:ミリ秒を1~3桁の数字で、1秒の端数を表記
- Z:時刻がUTC(協定世界時)であることを示す(UTC以外の時刻をしている場合は、「±hh:mm」の形式で「hh」はUTCからの時差、「mm」はUTCからの分差を示す)
例えば、2024年4月20日から2024年4月28日までの日次データを取得するには、次のようなGETリクエストを送信します。
curl -i -X GET \
'https://api.kinsta.com/v2/applications/{application_id}/metrics/bandwidth?interval_in_seconds=86400&timeframe_start=2024-04-20T18%3A10%3A45.511Z&timeframe_end=2024-04-28T18%3A10%3A45.511Z'
-H 'Authorization: Bearer '
{application_id}
と<YOUR_TOKEN_HERE>
は、それぞれアプリケーションIDとAPIトークンに置き換えます。このリクエストを送信すると、以下のようなデータフォーマットが返されます。
{
"app": {
"id": "MY_APP_ID",
"display_name": "Kinsta-developer-portfolio",
"metrics": {
"timeframe": {
"start": "1713571200000",
"end": "1714262400000"
},
"bandwidth": [
{
"time": "1713571200000",
"value": "18205"
},
{
"time": "1713657600000",
"value": "834750"
},
{
"time": "1713744000000",
"value": "146959"
},
{
"time": "1713830400000",
"value": "142413"
},
{
"time": "1713916800000",
"value": "165352"
},
{
"time": "1714089600000",
"value": "109015"
},
{
"time": "1714176000000",
"value": "628641"
}
]
}
}
}
レスポンスでは、リクエストで送信された内容に基づき、タイムフレームの開始と終了が指定されます。これをnew Date()
コンストラクタに渡すと、日付/時刻オブジェクトが返されます。また帯域幅は、時刻(設定された間隔に基づき、日ごとに指定されたタイムスタンプ)とバイト単位の値を含むオブジェクトの配列が返されます。
各データを適宜変換すると、以下のようになります。
タイムフレーム
- 開始:2024-04-20 00:00:00
- 終了:2024-04-29 00:00:00
帯域幅(MBに変換)
- 時刻:2024-04-20 00:00:00、値:0.0174 MB
- 時刻:2024-04-21 00:00:00、値:0.7961 MB
- 時刻:2024-04-22 00:00:00、値:0.1402 MB
- 時刻:2024-04-23 00:00:00、値:0.1358 MB
- 時刻:2024-04-24 00:00:00、値:0.1577 MB
- 時刻:2024-04-26 00:00:00、値:0.1040 MB
- 時刻:2024-04-27 00:00:00、値:0.5995 MB
- 時刻:2024-04-28 00:00:00、値:5.8086 MB
MyKinstaで各アプリケーション画面を開くことなく、異なるプラットフォームで分析情報をプログラムを介して取得することができます。
例えば、SlackのSlashコマンドを使用してSlackbotを構築し、Slackでデータを取得したり、毎日の帯域幅、CPU、またはメモリ使用量が特定のしきい値を超えた際に通知するリマインダーを作成したりすることができます。
Kinsta APIで会社のユーザーにアクセスする
さらに、お客様からの要望にお応えして、MyKinstaの企業のユーザーに関する情報(姓名、メールアドレス、Gravatarの画像URLなど)を取得するエンドポイントも導入しました。
Kinstaは、お客様からのご意見やご要望を重視し、定期的に機能の改善や導入を行っています。特定の機能やエンドポイントのご要望がありましたら、ぜひお気軽にご意見をお寄せください。
このデータにアクセスするには、https://api.kinsta.com/v2/company/{company_id}/users
にGETリクエストを送信します({company_id}
は、企業IDに置き換えます)。すると、以下のようなレスポンスが返されます。
{
"company": {
"users": [
{
"user": {
"id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1",
"email": "[email protected]",
"image": "https://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50",
"full_name": "John Doe"
}
}
]
}
}
Kinsta APIを賢く活用
Kinsta APIを使用するには、MyKinstaに少なくとも1つのWordPressサイト、アプリケーション、またはデータベースを持つアカウントが必要になります。以下の手順で、APIキーを生成してください。
- MyKinstaを開く
- APIキー画面に移動する(画面右上のユーザー名>「企業の設定」>「APIキー」)
- 「APIキーを作成」をクリックする
- 有効期限を選択、または「カスタム」で任意の日時を設定する
- キーに一意の名前を付ける
- 「生成」をクリックする
APIキーは、コピーして必ず安全な場所に保管してください。1Passwordのようなパスワードマネージャーを利用して、安全に共有することをお勧めします。
Kinsta APIでできることは多数あります。APIで実現可能な操作、使用方法、ユーザーアクセスやレート上限など、詳しい情報はドキュメントでご覧いただけます。
Kinsta APIのその他のエンドポイントについては、以下でご紹介しています。