この例では、GraphQL Analytics API を使って、指定した期間の Cloudflare Network Firewall サンプルをクエリします。
次の API 呼び出しは、1 時間の Cloudflare Network Firewall サンプルをリクエストし、指定したフィールドを出力します。<CLOUDFLARE_ACCOUNT_TAG> と <API_TOKEN>1 をゾーンタグと API 認証情報に置き換え、datetime_geg と datetime_leq の値は必要に応じて調整してください。
echo '{ "query":
"query MFWActivity {
viewer {
accounts(filter: { accountTag: $accountTag }) {
magicFirewallSamplesAdaptiveGroups(
filter: $filter
limit: 10
orderBy: [datetimeFiveMinute_DESC]
) {
sum {
bits
packets
}
dimensions {
datetimeFiveMinute
ruleId
}
}
}
}
}",
"variables": {
"accountTag": "<CLOUDFLARE_ACCOUNT_TAG>",
"filter": {
"datetime_geq": "2022-07-24T11:00:00Z",
"datetime_leq": "2022-07-24T11:10:00Z"
}
}
}' | 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 分間隔で受信したパケット数とビット数の合計です。結果は(リクエストどおり)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": [
#=> {
#=> "magicFirewallSamplesAdaptiveGroups": [
#=> {
#=> sum: { bits: 327680, packets: 16384 },
#=> dimensions: {
#=> datetimeFiveMinute: '2021-05-12T22:00-00:00',
#=> ruleId: 'bdfa8f8f0ae142b4a70ef15f6160e532'
#=> }
#=> },
#=> {
#=> sum: { bits: 360448, packets: 8192 },
#=> dimensions: {
#=> datetimeFiveMinute: '2021-05-12T22:05-00:00',
#=> ruleId: 'bdfa8f8f0ae142b4a70ef15f6160e532'
#=> }
#=> },
#=> {
#=> sum: { bits: 327680, packets: 8192 },
#=> dimensions: {
#=> datetimeFiveMinute: '2021-05-12T22:05-00:00',
#=> ruleId: 'bdfa8f8f0ae142b4a70ef15f6160e532'
#=> }
#=> },
#=> {
#=> sum: { bits: 360448, packets: 8192 },
#=> dimensions: {
#=> datetimeFiveMinute: '2021-05-12T22:20-00:00',
#=> ruleId: 'bdfa8f8f0ae142b4a70ef15f6160e532'
#=> }
#=> },
#=> {
#=> sum: { bits: 327680, packets: 8192 },
#=> dimensions: {
#=> datetimeFiveMinute: '2021-05-12T22:20-00:00',
#=> ruleId: 'bdfa8f8f0ae142b4a70ef15f6160e532'
#=> }
#=> }
#=> ]
#=> }
#=> ]
#=> }
#=> },
#=> "errors": null
#=> }-
設定と権限の詳細は、Analytics API トークンを設定する を参照してください。 ↩