アプリケーション - ネットワーク
ネットワークパフォーマンス
アプリケーションのエッジおよびオリジンのレイテンシパーセンタイルを、国・コロ・パスごとの内訳とともに取得します。
GET
/
v2
/
apps
/
{app_id}
/
network
/
performance
ネットワークパフォーマンス
curl --request GET \
--url https://api.squarecloud.app/v2/apps/{app_id}/network/performance \
--header 'Authorization: <authorization>'import requests
url = "https://api.squarecloud.app/v2/apps/{app_id}/network/performance"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.squarecloud.app/v2/apps/{app_id}/network/performance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.squarecloud.app/v2/apps/{app_id}/network/performance",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.squarecloud.app/v2/apps/{app_id}/network/performance"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.squarecloud.app/v2/apps/{app_id}/network/performance")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.squarecloud.app/v2/apps/{app_id}/network/performance")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"status": "success",
"response": {
"summary": {
"edge": { "p50": 42, "p95": 180, "p99": 320 },
"origin": { "p50": 28, "p95": 150, "p99": 280 },
"requests": 12450
},
"timeseries": [
{
"date": "2025-12-01T12:00:00.000Z",
"requests": 540,
"edge": { "p50": 41, "p95": 175, "p99": 310 },
"origin": { "p50": 27, "p95": 148, "p99": 270 }
}
],
"countries": [
{ "type": "BR", "p50": 35, "p95": 160, "requests": 8200 },
{ "type": "US", "p50": 55, "p95": 210, "requests": 3100 }
],
"colos": [
{
"type": "GRU",
"city": "São Paulo",
"country": "BR",
"p50": 34,
"p95": 158,
"requests": 8100
}
],
"slowest_paths": [
{
"path": "/api/reports/generate",
"p95": 820,
"p99": 1500,
"requests": 230
}
]
}
}
指定した時間ウィンドウにおける、アプリケーションのエッジおよびオリジンの応答時間パーセンタイル(
エッジレイテンシ(
p50、p95、p99)に加えて、国別・コロ別・最も遅いパス別の内訳を返します。レイテンシの悪化を診断し、どのルートやリージョンが最も遅いかを特定するのに役立ちます。
Pro および Enterprise プランでのみ利用可能です。キャッシュミス時のレート制限: オーナーごとに 60 秒あたり 10 リクエスト。
edge)は Cloudflare のネットワークにおける Time To First Byte を測定し、オリジンレイテンシ(origin)はエッジがアプリケーションに到達してからアプリケーション自体が応答するまでにかかった時間を測定します。ウィンドウ内で両者の差が広がっている場合、通常はアプリケーションまたはそのクラスターノードに原因があり、両方が同時に上昇している場合はクライアントとエッジの間のネットワーク状況が原因である可能性が高いです。
これはネットワークレイテンシを測定するものであり、コンテナのリソース使用状況ではありません。コンテナ自体からサンプリングされた CPU、RAM、帯域幅については、アプリケーションメトリクスの取得を参照してください。修正の優先順位を決める前に、colos と countries をウェブサイトアナリティクスと組み合わせることで、遅いリージョンがトラフィックの少ないリージョンでもあるかどうかを確認できます。
パラメータ
string
必須
アプリケーションの ID。アプリケーションのダッシュボードの URL で確認できます。
string
必須
分析ウィンドウの開始を示す ISO 8601 形式のタイムスタンプ。
string
必須
ISO 8601 形式の終了タイムスタンプ。
start より後である必要があります。レスポンス
string
呼び出しが成功したかどうかを示します。成功した場合は
success、失敗した場合は error です。object
ウィンドウ内のレイテンシパーセンタイルと内訳。
表示 レスポンスオブジェクトを開閉
表示 レスポンスオブジェクトを開閉
object
ウィンドウ全体にわたる集計レイテンシパーセンタイル。
表示 summary オブジェクトを開閉
表示 summary オブジェクトを開閉
object
object
integer
ウィンドウ内で分析されたリクエストの総数。
array
array
array
{
"status": "success",
"response": {
"summary": {
"edge": { "p50": 42, "p95": 180, "p99": 320 },
"origin": { "p50": 28, "p95": 150, "p99": 280 },
"requests": 12450
},
"timeseries": [
{
"date": "2025-12-01T12:00:00.000Z",
"requests": 540,
"edge": { "p50": 41, "p95": 175, "p99": 310 },
"origin": { "p50": 27, "p95": 148, "p99": 270 }
}
],
"countries": [
{ "type": "BR", "p50": 35, "p95": 160, "requests": 8200 },
{ "type": "US", "p50": 55, "p95": 210, "requests": 3100 }
],
"colos": [
{
"type": "GRU",
"city": "São Paulo",
"country": "BR",
"p50": 34,
"p95": 158,
"requests": 8100
}
],
"slowest_paths": [
{
"path": "/api/reports/generate",
"p95": 820,
"p99": 1500,
"requests": 230
}
]
}
}
一般的なエラー
| コード | HTTP | 説明 |
|---|---|---|
INVALID_TIME_RANGE | 400 | start/end が指定されていない、形式が不正、または時間範囲が逆転しています。 |
UPGRADE_REQUIRED | 403 | パフォーマンス分析は Pro および Enterprise プランでのみ利用できます。 |
UNABLE_TO_FETCH_PERFORMANCE | 500 | エッジプロバイダーからのパフォーマンスデータ取得に失敗しました。 |
⌘I
ネットワークパフォーマンス
curl --request GET \
--url https://api.squarecloud.app/v2/apps/{app_id}/network/performance \
--header 'Authorization: <authorization>'import requests
url = "https://api.squarecloud.app/v2/apps/{app_id}/network/performance"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.squarecloud.app/v2/apps/{app_id}/network/performance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.squarecloud.app/v2/apps/{app_id}/network/performance",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.squarecloud.app/v2/apps/{app_id}/network/performance"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.squarecloud.app/v2/apps/{app_id}/network/performance")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.squarecloud.app/v2/apps/{app_id}/network/performance")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"status": "success",
"response": {
"summary": {
"edge": { "p50": 42, "p95": 180, "p99": 320 },
"origin": { "p50": 28, "p95": 150, "p99": 280 },
"requests": 12450
},
"timeseries": [
{
"date": "2025-12-01T12:00:00.000Z",
"requests": 540,
"edge": { "p50": 41, "p95": 175, "p99": 310 },
"origin": { "p50": 27, "p95": 148, "p99": 270 }
}
],
"countries": [
{ "type": "BR", "p50": 35, "p95": 160, "requests": 8200 },
{ "type": "US", "p50": 55, "p95": 210, "requests": 3100 }
],
"colos": [
{
"type": "GRU",
"city": "São Paulo",
"country": "BR",
"p50": 34,
"p95": 158,
"requests": 8100
}
],
"slowest_paths": [
{
"path": "/api/reports/generate",
"p95": 820,
"p99": 1500,
"requests": 230
}
]
}
}

