Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

PoemMisty/CF-Request-Analytics-Panel

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CF Request Analytics Panel

Cloudflare 多账号请求分析面板,支持按账号、区域、域名、子域名、Worker 服务名和时间范围筛选数据,查看 HTTP 请求、Workers / Pages 用量、流量趋势、Top IP / Top Host,并通过 Workers AI 分析服务入口的异常风险。

在线 Demo

功能

  • 多账号请求汇总与单账号查看
  • 按区域、域名、子域名、Worker 服务名筛选
  • HTTP 请求数、边缘响应流量、Top IP、Top Host
  • Workers / Pages 免费额度进度
  • 可输出兼容edgetunnel的统计API,格式/usage.json
  • 1h / 6h / 12h / 24h / 3天 / 7天 趋势图
  • Worker 服务名项目级请求统计
  • AI 分析当前筛选范围的异常风险
  • 管理员登录与后台账号管理
  • 未登录隐私展示控制

目录结构

src/worker.js              # 核心业务逻辑
functions/[[path]].js      # Cloudflare Pages Functions 入口
public/.gitkeep            # Pages 静态输出目录占位
wrangler.example.toml      # Wrangler 配置示例,不会被 Pages 自动读取

配置

类型 名称 必填 说明
KV 绑定 KV 保存账号配置和隐私设置
Workers AI 绑定 AI 调用 Workers AI 进行风险分析(可选,不绑定仍可使用数据查看功能)
环境变量 ADMIN_USER 管理员用户名,默认 admin
环境变量 ADMIN_PASSWORD 管理员密码
环境变量 CRON_SECRET URL触发采集认证密钥
环境变量 AI_MODEL Workers AI 模型名称,默认 @cf/openai/gpt-oss-20b

Cloudflare Pages 部署

1. Fork 仓库

先在 GitHub 上 Fork 本仓库到自己的账号下,然后在 Cloudflare Dashboard 中进入:

存储和数据库-> Workers KV -> Create Instance/创建实例 -> 命名空间名称:cf-request-analytics-panel -> 创建

命名空间名称你可以设置直接喜欢的,但要在接下来的步骤里,选择对应的Workers KV,完成后:

计算 -> Workers 和 Pages -> 创建应用程序 -> 想要部署 Pages?开始使用 -> 导入现有 Git 存储库 -> 你Fork的仓库

2. 构建设置

Pages 构建配置建议如下:

项目
项目名称 cf-request-analytics-panel 或自定义
生产分支 main
框架预设 None / 无
构建命令 留空
构建输出目录 留空或 /
根目录(高级) 留空
环境变量(高级) 留空

仓库默认不包含 wrangler.toml,避免 Cloudflare Pages 将绑定切换为配置文件管理。请按下方步骤在 Pages Dashboard 中绑定 KVAI 和环境变量。

3. 绑定 KV

无需等待部署,点击下方继续处理项目,确认取消部署,来到项目主页:

设置 -> 绑定 -> 添加 KV 命名空间 -> 变量名称输入:KV -> KV 命名空间:cf-request-analytics-panel -> 保存

如果你在第一步自定义了名称,这里的KV 命名空间选择你自定义的名称

4. 绑定 Workers AI(可选)

在 Pages 项目中进入:

设置 -> 绑定 -> 添加 Workers AI -> 变量名称输入:AI -> 保存

此步骤可跳过,不绑定 AI 不影响数据查看功能,仅 AI 分析不可用。

5. 设置环境变量

在 Pages 项目中进入:

设置 -> 变量和机密 -> 类型:文本 -> 变量名称:ADMIN_PASSWORD -> 值:你的后台密码 -> 保存

至少设置:

ADMIN_PASSWORD=你的后台密码

可选设置:参考配置

ADMIN_USER=admin
AI_MODEL=@cf/openai/gpt-oss-20b

6. 重新部署

上述几个步骤完成保存后:

在 Pages 项目中进入:

主页标签 -> 部署

选择列表第一个,点击右侧的 ,选择重新部署,等待部署完成

使用

  1. 打开 Pages 分配的域名。
  2. 使用管理员账号登录。
  3. 进入后台添加 Cloudflare 账号配置。
  4. 填写 Account ID、API Token 和 Zone ID。
  5. 返回首页按账号、区域、主机名、服务名和时间范围筛选数据。
  6. 点击 AI 分析,查看当前筛选范围的风险判断。

Account ID、API Token 和 Zone ID 获取

1. API Token

在 Cloudflare Dashboard 中进入:

右上角头像 -> 配置文件 -> API 令牌 -> 创建令牌 -> 使用模板:阅读分析数据和日志 -> 继续以显示摘要 -> 创建令牌

复制cfut_xxx开头的API Token

2. Account ID

在 Cloudflare Dashboard 中进入:

计算 -> Workers 和 Pages

右侧或者底部,复制Account ID

3. Zone ID

此项较为特殊,因为每个Zone ID对应一个域名,选择你想加入分析的域名,可以输入多个,每行一个

在 Cloudflare Dashboard 中进入:

域名 -> 概览 -> 需要加入的域名

右侧或者底部,复制区域 ID

保存历史数据 3 天 / 7 天

后台配置中可以选择多久触发一次采集,默认为 每日一次

每次采集会将最近24小时的请求数据存入 KV。随着时间的推移,KV 中积累的历史数据可以支持 3 天、7 天的趋势查看。

由于 CF GraphQL API 限制,单次查询只能获取到过去 24 小时的数据,建议至少每 24 小时采集一次以保证数据连续性。

但是由于 Pages 没有定时任务,如果你清楚如何使用 Worker 部署,可以自行使用 Worker 部署。

Worker 配置定时任务

在 Worker 项目中进入:

设置 -> 触发条件 -> 添加 -> Cron 触发器 -> Cron 表达式 

在输入中输入:0 8 * * * ,意思是每天定时触发一次采集,请注意修改此项,需要配合项目后台设置的采集间隔。

Pages 配置定时任务

采集触发 API:

/api/cron/trigger?key=CRON_SECRET

使用任意方式定时访问项目 API,你可以建立另一个 Worker 定时触发,也可以使用任何外部服务,只要能访问 API。

例如用 cron-job.org Uptime Kuma 等外部服务调用 https://.../api/cron/trigger?key=CRON_SECRET

URL 中的 CRON_SECRET 为变量,参考下方设置方式:

在 Pages 项目中进入:

设置 -> 变量和机密 -> 类型:文本 -> 变量名称:CRON_SECRET -> 值:触发采集的密钥 -> 保存

UsageAPI

本项目提供兼容 edgetunnel 的公开用量接口:

/usage.json

返回字段包含:successpagesworkerstotalmaxresourcesmsg,并允许跨域读取。

隐私展示

  • Cloudflare API Token 不会在前端展示。
  • Zone ID 不会在前端展示。
  • 未登录用户默认隐藏敏感数据。
  • 管理员可以在后台调整公开隐私设置。

许可证

本项目使用 GPL-3.0 License。

About

Cloudflare 多账号请求分析面板,支持按账号、区域、域名、子域名、Worker 服务名和时间范围筛选数据进行分析

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.