在Cloudflare免费计划中获取类似Pro计划的分析信息
Cloudflare的管理界面提供了一些很好的流量分析选项。其中,仪表板的分析界面(Site Analytics)能够从各个方面对网站(区域)接收到的HTTP请求进行统计分析,并显示出通信的趋势,有助于理解通信情况。
https://support.cloudflare.com/hc/en-us/articles/360037684251-Understanding-Cloudflare-Site-Analytics
例子的表示
试着按照国家来看一下
分别根据状态码来查看
免费计划
GraphQL分析API
即使是 Free计划,只要通过 GraphQL Analytics API,也能获取类似的统计和分析信息。请参考:https://developers.cloudflare.com/analytics/graphql-api
查询示例
我们将对12月1日至7日的接收流量进行按国家进行分析,并获得结果。
我们使用API TOKEN来阅读分析和日志。
https://developers.cloudflare.com/api/tokens/create/template
curl -s -X POST -H "Authorization: Bearer $TOKEN_ANA" -H 'Content-Type: application/json' --data '{ "query": "query { viewer { zones(filter: {zoneTag: $ZONETAG}) { httpRequests1dGroups(limit: 7, orderBy: [date_ASC], filter: { date_gt: $DATEGT, date_lt: $DATELT }) { date: dimensions { date } sum { countryMap { requests, clientCountryName } } } } } }", "variables": { "ZONETAG":"<ゾーンタグ>", "DATEGT": "2021-12-01", "DATELT": "2021-12-07" } }' https://api.cloudflare.com/client/v4/graphql/
我得到了以下的结果。
{
"data": {
"viewer": {
"zones": [
{
"httpRequests1dGroups": [
{
"date": {
"date": "2021-12-02"
},
"sum": {
"countryMap": [
{
"clientCountryName": "FR",
"requests": 1
},
{
"clientCountryName": "GB",
"requests": 17
},
{
"clientCountryName": "US",
"requests": 1
}
]
}
},
{
"date": {
"date": "2021-12-04"
},
"sum": {
"countryMap": [
{
"clientCountryName": "FR",
"requests": 18
}
]
}
}
]
}
]
}
},
"errors": null
}
由于获得了信息,您还可以将其图形化。
还可以获得其他分析信息。
{
"httpRequests1dGroups": [
{
"dimensions": {
"date": "2021-12-02"
},
"sum": {
"bytes": 28952,
"cachedBytes": 967,
"cachedRequests": 1,
"contentTypeMap": [
{
"bytes": 9846,
"edgeResponseContentTypeName": "html",
"requests": 1
},
{
"bytes": 19106,
"edgeResponseContentTypeName": "txt",
"requests": 18
}
],
"countryMap": [
{
"bytes": 1067,
"clientCountryName": "FR"
},
{
"bytes": 18039,
"clientCountryName": "GB"
},
{
"bytes": 9846,
"clientCountryName": "US"
}
],
"requests": 19,
"responseStatusMap": [
{
"edgeResponseStatus": 403,
"requests": 18
},
{
"edgeResponseStatus": 503,
"requests": 1
}
]
}
},
总结
需要付出一些额外工作,但信息来源可以从GraphQL Analytics API获得,所以即使是免费计划也可以在一定程度上掌握信息。
另外,GraphQL Analytics API还可以获取HTTP以外的信息。
因为有教程可以参考,我觉得这会对你有帮助。
https://developers.cloudflare.com/analytics/graphql-api/tutorials
此外, 除了我们刚刚介绍的网站分析页面外, 还提供了其他统计和分析功能。详细信息请参考以下链接:
https://developers.cloudflare.com/analytics/