この例では、GraphQL Analytics API を使い、指定した期間の IDS サンプルをクエリします。
次の API 呼び出しは、1 時間の IDS サンプルをリクエストし、指定したフィールドを出力します。<CLOUDFLARE_ACCOUNT_TAG> と <API_TOKEN>1 は、ご自身のアカウントタグと API 認証情報に置き換え、datetime_geg と datetime_leq の値は必要に応じて調整してください。
echo '{ "query":
"query IDSActivity {
viewer {
accounts(filter: { accountTag: $accountTag }) {
magicIDPSNetworkAnalyticsAdaptiveGroups(
filter: $filter
limit: 10
) {
sum {
bits
packets
}
dimensions {
datetimeFiveMinutes
}
}
}
}
}",
"variables": {
"accountTag": "<CLOUDFLARE_ACCOUNT_TAG>",
"filter": {
"datetime_geq": "2023-06-20T11:00:00.000Z",
"datetime_leq": "2023-06-20T12:00:00.000Z",
"verdict": "drop",
"outcome": "pass"
}
}
}' | tr -d '\n' | curl --silent \
https://api.cloudflare.com/client/v4/graphql \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data @-戻り値は、5 分間隔で IDS ルールに一致したパケット数とビット数の合計です。結果は(リクエストどおり)JSON になるので、出力を jq へパイプすると読みやすくなります。次の例を参照してください。
... | curl --silent \
https://api.cloudflare.com/client/v4/graphql \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data @- | jq .
#=> {
#=> "data": {
#=> "viewer": {
#=> "accounts": [
#=> {
#=> "magicIDPSNetworkAnalyticsAdaptiveGroups": [
#=> {
#=> sum: { bits: 327680, packets: 16384 },
#=> dimensions: {
#=> datetimeFiveMinute: '2021-05-12T22:00-00:00'
#=> }
#=> },
#=> {
#=> sum: { bits: 360448, packets: 8192 },
#=> dimensions: {
#=> datetimeFiveMinute: '2021-05-12T22:05-00:00'
#=> }
#=> },
#=> {
#=> sum: { bits: 327680, packets: 8192 },
#=> dimensions: {
#=> datetimeFiveMinute: '2021-05-12T22:05-00:00'
#=> }
#=> },
#=> {
#=> sum: { bits: 360448, packets: 8192 },
#=> dimensions: {
#=> datetimeFiveMinute: '2021-05-12T22:20-00:00'
#=> }
#=> },
#=> {
#=> sum: { bits: 327680, packets: 8192 },
#=> dimensions: {
#=> datetimeFiveMinute: '2021-05-12T22:20-00:00'
#=> }
#=> }
#=> ]
#=> }
#=> ]
#=> }
#=> },
#=> "errors": null
#=> }-
設定と権限について詳しくは、Analytics API トークンを設定する を参照してください。 ↩